无法从.cs文件访问telerik控件中的控件

时间:2010-10-30 14:59:58

标签: c# asp.net telerik

我正在尝试使用此解决方案来访问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."}

任何人都可以告诉我如何解决这个问题。我真的需要运行这个服务器端,因为围绕上面代码的代码做了一些工作服务器端,它将全部适合...

亲切的问候

2 个答案:

答案 0 :(得分:0)

这是因为在呈现表单的HTML时,标签的名称不是“DivLeave”。由于它位于用户控件内,因此它将是页面上用户控件名称的组合,然后是“DivLeave”。您应该能够通过查看背后的代码来查看名称。另外,为什么你不能在不使用FindControl的情况下引用DivLeave.Visible?它是一个带有runat服务器属性的ASP.NET控件,因此它应该可供您使用。

答案 1 :(得分:0)

您可以在Visual Studio中对“费用”对象进行快速监视,看看“DivLeave”是否可用?它可能会发生:

  1. 标签控件可用,但在对象中处于不同的级别。
  2. 标签控件本身未添加到父级“费用”中。
  3. 此外,在访问费用和DivLeave对象之前对其进行空检查是个好主意。