2011-08-08 8 views
0

button.Iのクリックイベントで動的に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を取得し、テキストボックスの値.IE(txtFName1.Text)を取得しておりません。グリッドビュー内のすべてのコントロールの値を取得するための提案をお願いします。 Asp.net C# ありがとうございます。

+0

コードをステップ実行します。私の推測では、FindControlはコントロールを見つけられません。 –

+0

どうすればいいですか? – abc

答えて

0

私の推測どおり、理由はあなたがポストバック中にデータを失っているということです。つまり最初にグリッドが塗りつぶされますが、ボタンをクリックすると、ページがポストバックされ、グリッドがポストバック後に新しいグリッドに表示されます。試してみてください(!isPostBack)。確かにわかりませんが、これはヒントを得るのに少し役立ちます。

+0

私が(!ispostbackを使用すると)gridviewが見えない場合 – abc

関連する問題