第二次没有找到对象

时间:2014-02-13 09:47:18

标签: c# asp.net repeater

这是我一直在做的事情......我确定这只是早晨综合症,但我不知道这里有什么不对。

同一个对象以不同的方式设置,但第二次我看不到引用它。

标记:

<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.

在属性添加行

1 个答案:

答案 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");
}