2011-08-08 4 views
0

button.I의 click 이벤트에 대해 gridview를 동적으로 생성했습니다. add (lnkadd) 링크 버튼이있는 행 (이름, 성, 관계, DOB)). 저는 gridview를 디자인하기 위해 Itemtemplate, edittemplate, EditItemTemplate, FooterTemplate을 사용했습니다. 다음과 같이 나는 lnkadd 클릭 이벤트에 GRIDVIEW에 행을 추가하는 기능을 사용 :asp.net에서 동적으로 생성 된 gridview에 레코드를 삽입하는 것에 대해 #

tabemp = (DataTable)Session["tabempsession"]; 

     if (tabemp.Rows.Count == 1) 
     { 

      if (Convert.ToString(tabemp.Rows[0].ItemArray.GetValue(0)) == "") 
      { 
       tabemp.Rows.Clear(); 
      } 
     } 
     DataRow drow = tabemp.NewRow(); 

     //create new veriable of(textbox,dropdownlist etc) in ItemTemplate in grid view 

     TextBox txtFName1 = (TextBox)mygridview.FooterRow.FindControl("txtFName1");   
     TextBox txtLName1 = (TextBox)mygridview.FooterRow.FindControl("txtLName1"); 
     DropDownList ddlRelation = (DropDownList)mygridview.FooterRow.FindControl("ddlRelation"); 
     TextBox txtDOB = (TextBox)mygridview.FooterRow.FindControl("txtDOB"); 

     //insert values into rows in tabemp table 
     drow[0] = txtFName1.Text; 

     drow[1] = txtLName1.Text; 
     drow[2] = ddlRelation.SelectedItem.Text; 
     drow[3] = txtDOB.Text; 

     tabemp.Rows.Add(drow); 
     Session["tabempsession"] = tabemp; 
     //int f = tabemp.Rows.Count; 
     mygridview.DataSource = (DataTable)Session["tabempsession"]; 
     mygridview.DataBind(); 

을하지만 난 그것 null를 받고, 텍스트 상자 값 (txtFName1.Text)를 .IE 받고 있지 않다. gridview 내부의 모든 컨트롤 값을 가져 오기위한 제안을 해주십시오. Asp.net C# 감사합니다.

+0

코드를 단계별로 실행하십시오. 내 생각 엔 FindControl이 컨트롤을 찾지 못했을 것입니다. –

+0

어떻게해야합니까? – abc

답변

0

내 추측에 따르면, 이유는 당신이 게시물을 다시하는 동안 데이터를 잃고있다. 즉, 처음에는 격자가 채워지지만 버튼을 클릭하면 페이지가 다시 게시되고 격자가 나타납니다. 다시 게시하면 격자가 나타납니다. 사용해보십시오 (! isPostBack). 확실하지는 않지만 이것은 힌트를 얻는 데 약간 도움이 될 수 있습니다.

+0

내가 사용하는 경우 (! ispostback) gridview가 보이지 않습니다. – abc

관련 문제