![](/img/trans.png)
[英]How do I access properties from page in ContentPlaceholder in my MasterPage
[英]Access Dropdown on Masterpage via ContentPlaceHolder
我还是aspx开发人员的新手,在访问放置在导航栏上的下拉列表时遇到了一些麻烦。 标记看起来像这样:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<asp:ContentPlaceHolder ID="cphTournamentDropdown" runat="server">
<li class="dropdown" style="background-color: orangered" id="ZZZ" runat="server">
<a class="dropdown-toggle" id="WWW" style="margin-right: 5px; color: navy" href="#" data-toggle="dropdown">Tournaments<b class="caret"></b></a>
</li>
</asp:ContentPlaceHolder>
<li><a runat="server" href="~/" style="color: orangered">Logs</a></li>
<li><a runat="server" href="~/About" style="color: orangered">Fixtures</a></li>
<li><a runat="server" href="~/Contact" style="color: orangered">Results</a></li>
</ul>
</div>
我可以使用下面的代码很好地到达ContentPlaceholder,但是那之后出错了,在创建DropDownList对象时获取空引用...
ContentPlaceHolder cph = (ContentPlaceHolder)form.FindControl("cphTournamentDropdown");
HtmlGenericControl genericControl = (HtmlGenericControl)cph.FindControl("ZZZ");
DropDownList cbo = genericControl.Controls[0] as DropDownList;
cbo.DataSource = tournaments; //arrayList of objects
cbo.DataTextField = "Title";
cbo.DataBind();
有什么建议么?
<a class="dropdown-toggle" runat="server" id="WWW" ...
ContentPlaceHolder cph = (ContentPlaceHolder)form.FindControl("cphTournamentDropdown");
HtmlGenericControl genericControl = (HtmlGenericControl)cph.FindControl("ZZZ");
HtmlAnchor cbo = (HtmlAnchor)genericControl.FindControl("WWW");
for (int i = 0; i < 10; i++)
{
var item = new HtmlGenericControl("li");
item.InnerText = i.ToString();
cbo.Controls.Add(item);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.