繁体   English   中英

asp:gridview动态创建的列

[英]asp:gridview dynamically created columns

我有一个gridview借助于sqldatasource进行填充。

创建gridview后,我想添加一个手动创建的Notes列,以便用户可以为每一行输入注释,然后单击提交表单。

在网格视图的<Columns>字段中,我具有以下内容:

<asp:TemplateField HeaderText="Notes">
                    <ItemTemplate>
                        <asp:TextBox ID="txtNotes" runat="server"></asp:TextBox>
                    </ItemTemplate>
</asp:TemplateField>

这实际上可以很好地创建新列,但是当我在文本框中输入数据时,单击“提交”时它将消失。 在提交中,我甚至遍历每个gridview行,如下所示:

foreach (GridViewRow row in gvResults.Rows)
{ 
   row.Cells[0].Text = 
   ...
   string notes = (row.Cells[10].FindControl("txtNotes") as TextBox).Text;
}

因此,字符串notes始终为空,似乎在回发时会重置该值; 因为它会重新创建txtNotes文本框。

如何保持回发的价值?

绑定GridView时,请确保检查是否为回发。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        LoadData(); //if you did this without checking IsPostBack, you'd rebind the GridView and lose the existing rows
    }

protected void LoadData()
{
    //bind GridView etc
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM