这是我一直在做的事情......我确定这只是早晨综合症,但我不知道这里有什么不对。
同一个对象以不同的方式设置,但第二次我看不到引用它。
标记:
<asp:Repeater runat="server" id="rptSecondTab" OnItemDataBound="rptSecondTab_ItemDataBound">
<ItemTemplate>
<div id="divIcon" ClientIDMode="Static" runat="server" class="tab-pane overflow-auto">
<asp:PlaceHolder runat="server" ID="PlaceHolder1"></asp:PlaceHolder>
</div>
</ItemTemplate>
</asp:Repeater>
代码:
((HtmlGenericControl)e.Item.FindControl("divIcon")).ID = NavURL;
if (secondFirstRun)
{
((HtmlGenericControl)e.Item.FindControl("divIcon")).Attributes.Add("class", "active tab-pane overflow-auto");
}
设置ID工作正常但设置活动属性会失败:
Object reference not set to an instance of an object.
在属性添加行
上答案 0 :(得分:0)
您正在更改控件的ID,这可能不是必需的,并且lster使用旧ID访问控件。您可以使用NavURL
代替divIcon
。您最好将divIcon存储在某个对象中,然后再使用它。
HtmlGenericControl htmlGenericControl = ((HtmlGenericControl)e.Item.FindControl("divIcon")).ID = NavURL;
if (secondFirstRun)
{
htmlGenericControl .Attributes.Add("class", "active tab-pane overflow-auto");
}