Не могу увидеть соответствующий элемент управления в коде - PullRequest
1 голос
/ 25 декабря 2011

У меня есть что-то вроде этого в Site.Master в проекте asv.net mvc3 (не бритва):

<telerik:RadRibbonBar ID="RadRibbonBar1" runat="server">

Код позади определяется так:

<%@ Master Language="C#" Inherits="myproject.Site_Master" CodeFile="Site.Master.cs" %>

Итак, Site.Master.cs:

using System.Web.Mvc;
using System;

namespace myproject
{
    public partial class Site_Master : ViewMasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

Как я могу получить доступ к radribbonbar1 из Page_loaded (который вызывается после загрузки страницы).

У меня сложилось впечатление, что я дал ему идентификатор, который будет автоматически сгенерирован для доступа через код C #, но этого не происходит (для Site_master нет переменной radribbonbar1).

Есть идеи, как заставить это работать?

Ответы [ 2 ]

2 голосов
/ 25 декабря 2011

Серверные элементы управления не будут работать должным образом, поскольку они требуют обработки событий, чего нет в ASP.NET MVC. См. Плагин ленты jQuery

1 голос
/ 25 декабря 2011

Не проверял это на вашем примере, но что-то подобное может сработать

public static Control FindControlRecursive(Control root, string id)
{
    return root.ID == id ? root : (from Control c in root.Controls select FindControlRecursive(c, id)).FirstOrDefault(t => t != null);
}

И, на вашей странице_загрузка

RadRibbonBar radRibbonBar1 = (RadRibbonBar)FindControlRecursive(Page, "RadRibbonBar1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...