C# Listview中带有的面板显示错误(对象引用未设置为对象的实例。)
我在列表视图的Itewmtemplate中有一个面板,它只应该在用户登录时显示,默认情况下可见性为false。谢谢你的帮助 这是我的c#代码: Aspx代码:C# Listview中带有的面板显示错误(对象引用未设置为对象的实例。),c#,asp.net,C#,Asp.net,我在列表视图的Itewmtemplate中有一个面板,它只应该在用户登录时显示,默认情况下可见性为false。谢谢你的帮助 这是我的c#代码: Aspx代码: <asp:Panel ID="pnlOptions" runat="server" Visible="false"> <ul> <ul> <li style="float: left">Option 1:</li> <
<asp:Panel ID="pnlOptions" runat="server" Visible="false">
<ul>
<ul>
<li style="float: left">Option 1:</li>
<li style="float: left">dropdown here</li>
</ul>
<li style="float: left">Option 1:</li>
<li style="float: left">dropdwon here</li>
</ul>
</asp:Panel>
选项1:
- 在此处下拉
选项1:
- 放在这里
您收到错误,因为FindControl调用是:
(面板)
的转换失败Control control = ListView1.FindControl("pnlOptions");
Panel pnlOptions = control as Panel;
pnlOptions.Visible = true;
然后,您可以设置断点,并找出哪一行发生故障。您会收到错误,因为FindControl调用是:
(面板)
的转换失败Control control = ListView1.FindControl("pnlOptions");
Panel pnlOptions = control as Panel;
pnlOptions.Visible = true;
然后,您可以设置断点,并找出哪一行在您身上出现故障。我的问题是,我试图通过一个函数错误地访问它,该函数是在我应该使用Item_created事件时创建的。下面是最后的工作代码:
protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
Control control = e.Item.FindControl("pnlOptions");
Panel pnlOptions = control as Panel;
pnlOptions.Visible = true;
}
谢谢你,里德。我的问题是,当我应该使用Item_created事件时,我试图通过创建的函数错误地访问它。这里是最终的工作代码:
protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
Control control = e.Item.FindControl("pnlOptions");
Panel pnlOptions = control as Panel;
pnlOptions.Visible = true;
}
谢谢你,里德。这也适用于:
foreach (var item in ListView1.Items)
{
Panel pnlOptions = (Panel)item.FindControl("pnlOptions");
pnlOptions.Visible = true;
}
这也应该起作用:
foreach (var item in ListView1.Items)
{
Panel pnlOptions = (Panel)item.FindControl("pnlOptions");
pnlOptions.Visible = true;
}
@fzshah76:检查面板的类型(在调试器中)-如果您按照上述方式重写,您应该能够准确地找出出现问题的原因,并且可以修复它,或者提供更多信息来帮助您。不,我认为这类似于网格视图类型。这里有另一个类似的问题@fzshah76:检查类型(在调试器中)如果你像上面那样重写,你应该能够准确地找出问题的原因,或者修复它,或者给我们更多的信息来帮助你。不,我认为这是类似于网格视图类型的东西,这里是另一个类似的问题