簡體   English   中英

通過ContentPlaceHolder訪問母版頁上的下拉菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM