内でコントロールObject reference not set to an instance of an object
を見つけようとすると、エラーが発生し続けます。しかし、他のコントロールはすべて問題ありませんか? ここで何が悪いのか誰にもわかりますか?Panel
Repeater
これは私がコントロールを選択する方法です:
Panel pnlSubCategories = (Panel)e.Item.FindControl("pnlSubCategories");
マークアップ:
<asp:Repeater ID="rptInnerCategories" runat="server" OnItemDataBound="rptCategories_OnItemDataBound">
<ItemTemplate>
<li id="liCategory" runat="server">
<asp:HyperLink ID="lnkCategory" runat="server">
<span><asp:Literal ID="litCategory" runat="server" Visible="true" /></span>
<asp:Image ID="imgMan" runat="server" Visible="false" /></asp:HyperLink>
<asp:Panel ID="pnlSubCategories" runat="server" Visible="false">
<ul>
<asp:Repeater ID="rptSubCategories" runat="server" Visible="false" OnItemDataBound="rptSubCategories_OnItemDataBound">
<ItemTemplate>
<li id="liSubCategory" runat="server">
<asp:HyperLink ID="lnkSubCategory" runat="server">
<span><asp:Literal ID="litSubCategory" runat="server" /></span></asp:HyperLink>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</asp:Panel>
</li>
</ItemTemplate>
</asp:Repeater>
コードビハインド:
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
Category category = (Category)e.Item.DataItem;
HyperLink lnkCategory = (HyperLink)e.Item.FindControl("lnkCategory");
Literal litCategory = (Literal)e.Item.FindControl("litCategory");
HtmlGenericControl liCategory = (HtmlGenericControl)e.Item.FindControl("liCategory");
Image imgMan = (Image)e.Item.FindControl("imgMan");
Panel pnlSubCategories = (Panel)e.Item.FindControl("pnlSubCategories");
Repeater subCategories = (Repeater)e.Item.FindControl("rptSubCategories");
if (category.ParentCategoryId != 0)
{
pnlSubCategories.Visible = true; //Getting the error on this line
助けてくれてありがとう。
編集*これまでに試したこと:
Panel pnlSubCategories = (Panel)liCategory.Controls[0].FindControl("pnlSubCategories");
Panel pnlSubCategories = (Panel)liCategory.Controls[1].FindControl("pnlSubCategories");
Panel pnlSubCategories = (Panel)Page.FindControl("pnlSubCategories");
Panel pnlSubCategories = (Panel)e.Item.FindControl("pnlSubCategories");
しかし、私はまだ同じエラーが発生します...
編集 2*
コントロールをコメントアウトしましたが、その下にあるものもPanel
見つかりませんRepeater subCategories
か? ここで何かがひどく間違っています.......
編集 3*