2010-02-03 2 views
1

При создании Gridview во время разработки вы можете создать столбец шаблон:Динамический шаблон Gridview и уникальный идентификатор управления (т.е. текстовое поле, ярлык)?

<asp:TemplateField> 
    <ItemTemplate> 
      <asp:Label runat="server" ID="Label1"></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

И в HTML, это даст ему уникальное имя, как:

<span id="gvSelect_ctl02_Label1">blahblah</span> 

И я могу затем ссылаться эта метка в коде позади:

CType(e.Row.FindControl("Label1"), Label) 

Что такое СОВЕРШЕННО. Но я не могу понять, как это сделать, когда я создаю TemplateFields динамически. У меня есть следующий код в моем «InstantiateIn»:

Dim hl As New HiddenField 
hl.ID = "hHidden" 
hl.Value = 0 
AddHandler hl.DataBinding, AddressOf Me.hl_DataBinding 
container.Controls.Add(hl) 

И это создает скрытый элемент управления с идентификатором, как hHidden в каждой строке. Но это не дает ему уникальный идентификатор типа «gvSelect_ctl02_hHidden», это просто «hHidden». И я знаю, что есть способы добавить к нему номер строки. Но мне было интересно, есть ли способ сделать это автоматически. И все же позвольте мне обратиться к скрытому полю:

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

Что такое «контейнер» в вашем примере? –

+0

umm .. контейнер ByVal Как System.Web.UI.Control? Что такое «TemplateField» .. – Dan

ответ

0

Ugh .. другой ответ на мой вопрос. Я искал имя в RowCreated. Я должен был искать его в событии RowDataBound.

Это работает сейчас .. теперь, когда я делаю это правильно.

(Возможно, у меня слишком много вещей на ходу сразу.): S

 Смежные вопросы

  • Нет связанных вопросов^_^