【问题标题】:About inserting record into dynamically created gridview in asp.net c#关于在asp.net c#中将记录插入到动态创建的gridview中
【发布时间】:2011-08-08 13:32:56
【问题描述】:

我在按钮的单击事件上动态创建了 gridview。我每行有 4 个字段(名字、姓氏、关系、DOB),带有用于添加(lnkadd)的链接按钮。我使用了 Itemtemplate、edittemplate、EditItemTemplate、FooterTemplate设计网格视图。 我使用函数在 lnkadd 点击事件中向 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# 谢谢你。

【问题讨论】:

  • 单步执行代码。我的猜测是 FindControl 没有找到控件。

标签: c# asp.net


【解决方案1】:

根据我的猜测,原因是您在回发期间丢失了数据。即,起初您的网格已填满,但当您单击按钮时,页面会被回发,并且在回发后向您显示的网格是新的网格。尝试使用 (!isPostBack)。 M 不确定,但这可能对您有所帮助。

【讨论】:

  • 如果我使用 (!ispostback) 则 gridview 不可见
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
相关资源
最近更新 更多