2014-10-06 2 views
1

동적 컨트롤이있는 모달 팝업이 있습니다. 버튼 클릭에 새 텍스트 상자를 추가해야합니다.모달 팝업 버튼을 두 번 클릭하지 못했습니다.

JQuery와 -

<script type="text/javascript"> 
    $(document).ready(function(){ 
     if($('#hdnclick').val()==1){   
     $('#modelPopup').dialog({ 
    autoopen:false,  
    title: "Add New Server", 
    width:650, 
    height:450, 
    modal:true,   
    buttons:{  
     Close:function(){ 
     $(this).dialog('close');  
     } 
    }  
    });     
      $('#btnadd').click(function(){ 
      alert('okay'); 
      }); 
     } 
    }); 

    </script> 

영문 코드 : -

<asp:GridView ID="grdservices" runat="server" AutoGenerateColumns="false" ShowFooter="true"> 
      <Columns> 
     <asp:BoundField DataField="S.No" HeaderText="s.no" /> 
     <asp:TemplateField HeaderText="service name"> 
     <ItemTemplate> 
     <asp:TextBox ID="txtservicename" runat="server"></asp:TextBox> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="description"> 
    <ItemTemplate>          
    <asp:TextBox ID="txtDescription" runat="server"></asp:TextBox> 
    </ItemTemplate> 
    <FooterStyle HorizontalAlign="right" /> 
    <FooterTemplate>  
    <asp:Button ID="btnadd" runat="server" Text="add new service" OnClick="btnadd_Click" OnRowCommand="ButtonClicked" /> 
    </FooterTemplate> 
</asp:TemplateField> 
</Columns> 
/asp:GridView> 

내 문제는이 "btnAddNewServic_Click"버튼을 클릭이 첫 번째 클릭하지만 "btnAddNewServic_Click"기능에 해고 해고하지 두 번째 클릭에서도 아무 것도 두 번째 클릭에서 해고되지 않습니다. 새 행을 추가 enter image description here

: 사람이 하나 .. 나에게이 문제를 복구하는

출력을 도와 드릴까요 -

protected void grdServices_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 
      if (e.CommandName == "ButtonClicked") 
      { 
       hdnclick.Value = "1"; 
       AddNewRowToGrid(); 
      } 
     } 


private void AddNewRowToGrid() 
     { 
      int rowindex = 0; 
      if (ViewState["CurrentTable"] != null) 
      { 
       DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"]; 
       DataRow drCurrentRow = null; 
       if (dtCurrentTable.Rows.Count > 0) 
       { 
        for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) 
        { 
         TextBox Box1 = (TextBox)grdservices.Rows[rowindex].Cells[1].FindControl("txtservicename"); 
         TextBox Box2 = (TextBox)grdservices.Rows[rowindex].Cells[2].FindControl("txtDescription"); 

         drCurrentRow = dtCurrentTable.NewRow(); 
         drCurrentRow["S.No"] = i + 1; 

         dtCurrentTable.Rows[i - 1]["Column1"] = Box1.Text; 
         dtCurrentTable.Rows[i - 1]["Column2"] = Box2.Text; 

         rowindex++; 
        } 
        dtCurrentTable.Rows.Add(drCurrentRow); 
        ViewState["CurrentTable"] = dtCurrentTable; 

        grdservices.DataSource = dtCurrentTable; 
        grdservices.DataBind(); 
       } 
      } 
     } 
+0

은 새 단추 또는 행을 추가 할 코드를 보여줍니다. – cracker

+0

새 행을 추가하는 코드를 추가했습니다. –

+0

코드의 단추를 코드에 추가하지 않고 코드를 추가하면 작동합니다. – cracker

답변

1

사용이

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
     if (e.CommandName == "ButtonClicked") 
     { 
      //Do Stuff 
     } 
    } 

추가 RowCommand에게 버튼에 "ButtonClicked"공동 작업을 위의 코드를 사용하려면 mmand 그리드보기에 열을 추가 사용하여 방법

Reference

+0

나는 이걸 시도했지만 두번째 버튼을 클릭하면 트리거하지 않는다. –

+0

새 코드를 바꾼다 ... –

+0

나는 나의 aspx 페이지에 OnRowCommand를 추가했다. 하지만 그 모달 팝업은 코드 숨김을 유발하지 않습니다 .. 나는이 @ 크래커를 해결할 필요가 있습니다. –

0

버튼 제어

<asp:Button ID="btnadd" runat="server" Text="add new service" OnClick="btnadd_Click" OnRowCommand="ButtonClicked" class="btnAdd" /> 

사용

같은 클릭 이벤트 화재로이 클래스 이름에 대한 클래스 이름을 넣어
$('#btnadd').click(function(){ 
      alert('okay'); 
      }); 

이며 gird 항목이 다시로드되면 페이지가로드되었는지 확인해야합니다. 컨트롤이 동적으로 만들어 지므로 하나만 확인해야하기 때문에 하나는 컨트롤을 렌더링하는 것입니다 ().

관련 문제