在行更新事件中进行编码时找不到.FindControl

本文关键字:找不到 FindControl 编码 更新 事件 | 更新日期: 2023-09-27 18:20:54

我有一个有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

我在这个过程中所遵循的步骤有什么错误吗?

请帮帮我。

在行更新事件中进行编码时找不到.FindControl

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

使用行作为

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

它应该是"EditItemTemplate"而不是"EmptyDataTemplate"

DataKeys和DataKeyNames用于存储您在网格视图中定义的值。您只需要

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

如果你想了解更多如何使用DataKeys,请尝试谷歌或查看以下示例:

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