0

我有一个 3 列的网格empName, bonus, Id

我想在 gridview 上实现编辑功能。

为此,我进入了 editTemplates 并添加了 3 个文本框:

<EmptyDataTemplate>
                <asp:TextBox ID="txtEmpName" runat="server"></asp:TextBox>
                <asp:TextBox ID="txtBonus" runat="server"></asp:TextBox>
                <asp:TextBox ID="txtID" runat="server"></asp:TextBox>
</EmptyDataTemplate>

我指的是代码的这个文档。

据此,我尝试编写如下代码:

TextBox txtUname = (TextBox)gv.DataKeys[e.RowIndex].FindControl("txtEmpName");

但是在(TextBox)gv.DataKeys[e.RowIndex].它没有显示给我之后FindControl

我在此过程中遵循的步骤是否有任何错误?

请帮我。

4

2 回答 2

2
TextBox txtUname = (TextBox)gv.DataKeys[e.RowIndex].FindControl("txtEmpName");

而是使用 Rows 作为

TextBox txtUname = (TextBox)gv.Rows[e.RowIndex].FindControl("txtEmpName");

它应该"EditItemTemplate"代替"EmptyDataTemplate"

于 2013-07-04T09:40:41.340 回答
1

DataKeys 和 DataKeyNames 用于存储您在 gridview 中定义的值。你只需要

TextBox txtUname = (TextBox)gv.Rows[e.RowIndex].FindControl("txtEmpName");

如果您想了解更多如何使用 DataKeys,请尝试 google 或查看此示例:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=291

于 2013-07-04T09:46:39.200 回答