Asp.net 动态Gridview模板和唯一控件(即文本框、标签)ID?

Asp.net 动态Gridview模板和唯一控件(即文本框、标签)ID?,asp.net,gridview,templatefield,unique-id,Asp.net,Gridview,Templatefield,Unique Id,在设计时创建Gridview时,可以创建如下模板列: <asp:TemplateField> <ItemTemplate> <asp:Label runat="server" ID="Label1"></asp:Label> </ItemTemplate> </asp:TemplateField> 这是完美的。但是,当我动态创建TemplateFields时,我不知道如何做到这一点。

在设计时创建Gridview时,可以创建如下模板列:

<asp:TemplateField>
     <ItemTemplate>
          <asp:Label runat="server" ID="Label1"></asp:Label>
     </ItemTemplate>
</asp:TemplateField>
这是完美的。但是,当我动态创建TemplateFields时,我不知道如何做到这一点。我的示例中有以下代码:

Dim hl As New HiddenField
hl.ID = "hHidden"
hl.Value = 0
AddHandler hl.DataBinding, AddressOf Me.hl_DataBinding
container.Controls.Add(hl)
这会在每一行中创建一个ID为hHidden的隐藏控件。但它并没有像gvSelect\u ctl02\u hHidden那样给它唯一的ID,它只是hHidden。我知道有很多方法可以把行号附加到它上面。但我想知道是否有一种方法可以让它自动做到这一点。仍然允许我引用hiddenfield,比如:

CType(e.Row.FindControl("hHidden"), HiddenField)

啊。。我自己问题的另一个答案。我正在创建的行中查找名称。我应该在RowDataBound事件中查找它

现在可以用了。。现在我做对了


我可能一次有太多的事情要做在你的例子中,什么是容器。。ByVal容器作为System.Web.UI.Control?这是一个模板字段。。
Dim hl As New HiddenField
hl.ID = "hHidden"
hl.Value = 0
AddHandler hl.DataBinding, AddressOf Me.hl_DataBinding
container.Controls.Add(hl)
CType(e.Row.FindControl("hHidden"), HiddenField)