无法访问TemplateField中的文本框文本
的.aspx:
<asp:TemplateField HeaderText="PIN" AccessibleHeaderText="PIN">
<ItemTemplate>
<asp:TextBox ID="txtPin" runat="server" Width="50px" MaxLength="4"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
代码背后的代码:
foreach (GridViewRow gr in grdPin.Rows)
{
TextBox lblDate = (TextBox)gr.Cells[0].FindControl("txtPin");
string x = lblDate.Text;
}
变量x为空。
答案 0 :(得分:3)
使用TemplateFields
,您必须使用FindControl
上的GridViewRow
而不是小区:
TextBox txtPin= (TextBox)gr.FindControl("txtPin");
您必须在要查找的控件的NamingContainer
上使用FindControl
。如果控件位于GridViewRow
,那么就是NamingContainer
。
答案 1 :(得分:0)
您需要使用 RowDataBound 事件
if(e.Row.RowType == DataControlRowType.DataRow)
{
// find and edit your control here
// example
Label date = (Label)e.Row.FindControl("ControlID");
}