我在asp.net mvc3(非razor)项目的Site.Master中有类似的东西:
<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)
{
}
}
}
如何从Page_loaded访问radribbonbar1(一旦页面加载就会调用它)。
我给它的印象是给它一个ID,它可以通过C#代码自动生成,但是没有发生(没有变量radribbonbar1可用于Site_master)。
有关如何使这项工作的任何想法?
答案 0 :(得分:2)
服务器控件无法正常工作,因为它们需要事件处理,这是ASP.NET MVC中没有的。请参阅jQuery ribbon plugin
答案 1 :(得分:1)
没有用你的例子测试这个,但是这样的东西可能会起作用
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);
}
并且,在你的page_load中
RadRibbonBar radRibbonBar1 = (RadRibbonBar)FindControlRecursive(Page, "RadRibbonBar1");