不能在GridView中找到能够控制的动态控制

问题描述:

我有一个GridView,我添加文本框来everycell上运行。不过,我似乎无法使用findcontrol不能在GridView中找到能够控制的动态控制

这里是我的文本框添加到GridView来访问这些控件:

If e.Row.RowType = DataControlRowType.DataRow Then 
     For i = 1 To e.Row.Cells.Count - 1 

      Dim txtSchedule As New TextBox() 

      txtSchedule.ID = "txtSchedule" & i.ToString 

      e.Row.Cells(i).Controls.Add(txtSchedule) 
     Next 
    End If 

当我去找到控制它说,他们是没有:

GridView1.Rows(0).Cells(cellindex).FindControl("txtSchedule" & cellindex.ToString) 

编辑 的问题是,获取填充文本框后,它重新创建文本框,因为我在创建

行有他们

您添加的控制行的单元格中使用的FindControl:

GridView1.Rows(0).Cells(cellindex).FindControl("txtSchedule" & cellindex.ToString) 
+0

谢谢你,问题是现在,它增加了对创建一行文本框,之后我填充这些文本框,它再现了他们 – Dman

+0

你的意思是它让重复的文本框? – N0Alias

动态添加的文本框事实上并不存在。因此,您无法访问或找到它。您可以物理添加文本框格内模板列并设置其知名度如下面的代码段:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server"></asp:Label>      
     <asp:TextBox ID="TextBox1" runat="server" Visible="False"></asp:TextBox> 
    </ItemTemplate> 
</asp:TemplateField> 

在此之后,如果你愿意,你可以找到文本框和切换其背后的代码的可见性。