如何从母版页中的代码隐藏动态地将项目添加到项目符号列表
How to dynamically add items to bulleted list from code-behind in the master page
我的主页有一个项目符号列表,定义如下:
<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 不允许子控件 发生是因为BulletedList
不支持通常使用Controls.Add()
方法设置的模板控件。这是来自 BulletedList.Controls
属性 的评论:
The Controls
property is inherited from the Control
class and is not
applicable to the BulletedList
control.
相反,您需要使用 Items.Add()
方法将 ListItem
项添加到 ListItemCollection
中,假设母版页中存在 BulletedList
:
if (!IsPostBack) {
headerMenu.Items.Add(new ListItem("my item"));
}
如果您希望项目文本与 URL 一起使用,请将 URL 作为 ListItem
的第二个参数:
if (!IsPostBack) {
headerMenu.Items.Add(new ListItem("my item", "http://path/to/url"));
}
我的主页有一个项目符号列表,定义如下:
<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 不允许子控件 发生是因为BulletedList
不支持通常使用Controls.Add()
方法设置的模板控件。这是来自 BulletedList.Controls
属性 的评论:
The
Controls
property is inherited from theControl
class and is not applicable to theBulletedList
control.
相反,您需要使用 Items.Add()
方法将 ListItem
项添加到 ListItemCollection
中,假设母版页中存在 BulletedList
:
if (!IsPostBack) {
headerMenu.Items.Add(new ListItem("my item"));
}
如果您希望项目文本与 URL 一起使用,请将 URL 作为 ListItem
的第二个参数:
if (!IsPostBack) {
headerMenu.Items.Add(new ListItem("my item", "http://path/to/url"));
}