0
我在ASP.net自定义用户控件上:从子页面称为用户控件没有出现母版页
MenuButton.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="~/MenuButton.ascx.cs" Inherits="MenuButton" ClassName="MenuButton" %>
<li><a href="<%= Link %>"><span><%= Text %></span></a></li>
MenuButton.ascx.cs:
using System;
public partial class MenuButton : System.Web.UI.UserControl
{
public String Link = "test.html";
public String Text = "TEST";
protected void Page_Load(object sender, EventArgs e)
{
}
}
MasterPage.master有这样的:
<%@ Reference Control="~/MenuButton.ascx" %>
<%@ Register Src="~/MenuButton.ascx" TagName="Menu" TagPrefix="button" %>
<ul runat="server" id="Menu"></ul>
个MasterPage.master.cs
public List<MenuButton> Menus = new List<MenuButton>();
protected void Page_Load(object sender, EventArgs e)
{
foreach (var control in Menus)
{
Menu.Controls.Add(control);
}
}
Default.aspx的
Master.Menus.Add(new MenuButton { Text = "Test1", Link = "test1.html" });
它编译OK,即使它确实应该怎么做,但他们只是不会出现在我的网页上的调试器。我在这里错过了什么吗?
谢谢。
编辑1:
我试图重写OnInit的我的母版页:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
foreach (var control in SousMenus)
{
SousMenu.Controls.Add(control);
}
}
它也没工作。
Default.aspx里面的哪个函数是添加按钮? Page_Load中? – JustLoren 2009-11-18 21:44:40
@JustLoren是的。 – ademers 2009-11-18 21:50:45
您的控件的路径是否正确?加入Page_Init应该可行...... – 2009-11-18 22:35:07