Я пытаюсь добавить атрибут к тегу с идентификатором 'SubNav2' на ItemDataBound, который находится в шаблоне HeaderTetlate ретранслятора.
Но я продолжаю получать сообщение об ошибке: ссылка на объект не установлена на экземпляробъект.
Что я думаю, потому что он не находит объект с идентификатором 'SubNav2', правильно ли я это делаю?
CODE BEHIND
If e.Item.ItemType = ListItemType.Header Then
Dim ulSubNav2 As HtmlGenericControl = CType(e.Item.FindControl("SubNav2"), HtmlGenericControl)
ulSubNav2.Style.Add("display", "block")
End If
Дополнительный код Итак, я пытаюсь найти это во втором идентификаторе ретранслятора = reSubNav2.Должен ли на нем быть runat = server?
<asp:Repeater ID="reSubNav" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="SubNavLink" runat="server"></asp:HyperLink>
<asp:Repeater ID="reSubNav2" runat="server" OnItemDataBound="reSubNav2_ItemDataBound">
<HeaderTemplate>
<ul id="SubNav2" style="display:none;">
</HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="SubNavLink2" runat="server"></asp:HyperLink></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<ul>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
CODE BEHIND
Protected Sub reSubNav2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim rowView As System.Data.DataRowView
rowView = CType(e.Item.DataItem, System.Data.DataRowView)
ElseIf e.Item.ItemType = ListItemType.Header Then
Dim ulSubNav2 As HtmlGenericControl = CType(e.Item.FindControl("SubNav2"), HtmlGenericControl)
ulSubNav2.Style.Add("display", "block")
End If
End Sub