【发布时间】:2018-10-01 09:03:05
【问题描述】:
我的母版页有一个项目符号列表,定义如下:
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<asp:LinkButton ID="btnHome" runat="server" class="active" CausesValidation="false">Home </asp:LinkButton>
</li>
<li>
<asp:BulletedList ID="headerMenu" DisplayMode="LinkButton" class="nav navbar-nav" CausesValidation="false" runat="server">
</asp:BulletedList>
</li>
</ul>
</div>
现在我正在尝试从内容页面(主页面的子页面)“_Default.cs”访问它并向其中添加一些项目。以下是我已经尝试过的,但它不起作用,因为我收到错误 'System.Web.UI.WebControls.BulletedList' 不允许子控件。
public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
LinkButton mybl = new LinkButton();
mybl.Text = "my item";
BulletedList Bl = (BulletedList)Master.FindControl("headerMenu");
if (Bl != null) {
Bl.Controls.Add(mybl);
}
}
}
}
如何动态更改母版页并从我的子内容页面修改 BulletedList?
【问题讨论】:
-
我不认为你可以像这样在
BulletedList中添加LinkButton,因为BulletedList不支持模板。只需使用DisplayMode="LinkButton"并使用Click事件来触发回发。 -
@TetsuyaYamamoto 我已经更新了项目符号列表的详细信息。基本上,如果我只想添加文本怎么办?现在我只想修改它。
-
直接使用
headerMenu.Items.Add("my item");,如果headerMenu存在于同一个masterpage中,则不需要使用FindControl。 -
非常感谢。作为一个 ASP.net 的菜鸟,简单的事情常常需要我永远弄清楚。
标签: asp.net master-pages