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

Я использую элементы управления telerik в моем проекте c # asp.net. Я пытаюсь отключить div в меню навигации telerik из файла .cs. Например:

        if (Emp_Role == "1" || Emp_Role == "5")
        {
            DivLeave.Visible = true;
        }

Я пытаюсь запустить проект, я получаю эту ошибку:

CS0103: имя DivLeave не существует в текущем контексте

Вот пример кода aspx

<telerik:RadMenu runat="server" ID="RadMenu1" Skin="Sitefinity"   OnClientItemOpened="itemOpened"
            Width="670px" Height="26px" EnableShadows="true">
            <Items>
                <telerik:RadMenuItem Text="Expenses" PostBack="false">
                    <Items>
                        <telerik:RadMenuItem CssClass="Stores" Width="640px">
                            <ItemTemplate>
                                <div id="DivLeave" class="Wrapper">
                                    <h3>
                                        Expense Management</h3>
                                    </div>

Кто-нибудь может помочь с этим? Если я размещу div вне элемента управления telerik, он будет работать нормально. Это так расстраивает!

С уважением,

R

Ответы [ 2 ]

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

Выполнение этого на стороне клиента также будет работать, и вам не нужно будет превращать div в сторону сервера. Используя jQuery вы можете иметь:

if (Emp_Role == "1" || Emp_Role == "5")
{
    Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "show_divleave", "$(function() {   $(\"div[id$='DivLeave']\").each(function(index) { $(this).css(\"display\", \"\"); }); });", true);
}

Предполагается, что эти элементы div изначально скрыты с использованием "display: none;" Правило CSS.

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

Во-первых, вы должны использовать элемент управления asp.net (или, по крайней мере, элемент управления, работающий на сервере), чтобы иметь возможность получить к нему доступ из кода. Например.

<asp:Label ID="DivLeave" runat="server"></asp:Label>

Во-вторых, чтобы получить элемент управления внутри элемента управления Telerik, вам нужен специальный код. В вашем примере вы можете сделать что-то вроде этого:

 // Find menuitem by css class
 RadMenuItem expenses = RadMenu1.FindItem(i => i.CssClass == "Stores");
 // Find control inside menuitem
 Label label = expenses.FindControl("DivLeave") as Label;
 label.Visible = true;

Чтобы узнать больше: Доступ к элементам управления внутри шаблонов

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