关于在asp.net c#中将记录插入到动态创建的gridview中

时间:2011-08-08 13:32:57

标签: c# asp.net

我已经在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# 谢谢。

1 个答案:

答案 0 :(得分:0)

根据我的猜测,原因是你在回发期间丢失了数据。即,首先您的网格已填满,但是当您单击该按钮时,页面将被回发,并且在回发后网格将显示为新网格。尝试使用(!isPostBack)。我不确定,但这可能会帮助你获得提示。