Элементы управления в элементе управления telerik недоступны из файла .cs - PullRequest
2 голосов
/ 30 октября 2010

Я пытаюсь использовать это решение для доступа к элементам внутри пункта меню 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 голосов
/ 31 октября 2010

Можете ли вы сделать быстрый просмотр для объекта «расходы» в Visual Studio и посмотреть, доступен ли «DivLeave»? Может так случиться, что:

  1. Элемент управления меткой доступен, но на другом уровне в объекте.
  2. Сам элемент управления меткой не добавляется к родительским «расходам».

Кроме того, было бы неплохо выполнить нулевую проверку расходов и объектов DivLeave, прежде чем получить к ним доступ.

0 голосов
/ 30 октября 2010

Это потому, что имя вашей метки не "DivLeave", когда отображается HTML для вашей формы.Поскольку он находится внутри пользовательского элемента управления, он будет представлять собой комбинацию имени пользовательского элемента управления на странице и затем «DivLeave».Вы должны быть в состоянии увидеть имя, посмотрев на код позади.Также, почему вы не можете просто ссылаться на DivLeave.Visible без использования FindControl?Это элемент управления ASP.NET с атрибутом сервера runat, поэтому он должен быть доступен для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...