在rowupdating事件中编码时无法找到.FindControl

时间:2013-07-04 09:37:26

标签: c# .net visual-studio-2010 gridview

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

我正在为代码提及THIS doccument。

根据这个我试着写代码如下:

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

但在(TextBox)gv.DataKeys[e.RowIndex].之后,它没有向我展示FindControl

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

请帮帮我。

2 个答案:

答案 0 :(得分:2)

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

而是使用Rows作为

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

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

答案 1 :(得分:1)

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

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

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

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