我正在尝试使用此解决方案来访问telerik菜单项中的项目:
ascx代码:
<asp:Label ID="DivLeave" runat="server"></asp:Label>
在ascx.cs文件中,我运行此代码以禁用asp标签
RadMenuItem expenses = RadMenu1.FindItemByText("Expenses");
Label DivLeave = (Label)expenses.FindControl("DivLeave");
DivLeave.Visible = false;
但是当我尝试运行代码时出现此错误:
{"Object reference not set to an instance of an object."}
任何人都可以告诉我如何解决这个问题。我真的需要运行这个服务器端,因为围绕上面代码的代码做了一些工作服务器端,它将全部适合...
亲切的问候
答案 0 :(得分:0)
这是因为在呈现表单的HTML时,标签的名称不是“DivLeave”。由于它位于用户控件内,因此它将是页面上用户控件名称的组合,然后是“DivLeave”。您应该能够通过查看背后的代码来查看名称。另外,为什么你不能在不使用FindControl的情况下引用DivLeave.Visible?它是一个带有runat服务器属性的ASP.NET控件,因此它应该可供您使用。
答案 1 :(得分:0)
您可以在Visual Studio中对“费用”对象进行快速监视,看看“DivLeave”是否可用?它可能会发生:
此外,在访问费用和DivLeave对象之前对其进行空检查是个好主意。