我已经在button的click事件上动态创建了gridview。我每行有4个字段(名字,姓氏,关系,DOB),链接按钮为add(lnkadd)。我使用了Itemtemplate,edittemplate,EditItemTemplate,FooterTemplate to设计gridview。 我使用函数在lnkadd click事件中向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();
但是我没有得到文本框值.ie(txtFName1.Text),它变为null。请给我建议获取gridview中所有控件的值。 Asp.net C# 谢谢。
答案 0 :(得分:0)
根据我的猜测,原因是你在回发期间丢失了数据。即,首先您的网格已填满,但是当您单击该按钮时,页面将被回发,并且在回发后网格将显示为新网格。尝试使用(!isPostBack)。我不确定,但这可能会帮助你获得提示。