如何在内容页中添加面板

本文关键字:添加 | 更新日期: 2023-09-27 17:49:36

我必须在内容页中找到一个面板,并需要在该面板上添加一个下拉列表。我已经搜索了,但我只有添加控件到母版页。下面是我的代码,注意:我必须从该页本身添加控件,而不是从母版页

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Salesorder.aspx.cs" Inherits="Salesorder" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <script src="assets/plugins/jquery-1.10.2.js"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
  <div class="row">
<asp:Panel ID="Panel1" runat="server"> 
</asp:Panel>             
        </div>
</asp:Content>

我需要从codebehind添加另一个面板到Panel1。

    protected void Page_PreInit(object sender, EventArgs e)
       {
          //Create a Dynamic Panel
          Panel pnlDropDownList; 
          pnlDropDownList = new Panel();
          pnlDropDownList.ID = "pnlDropDownList";
          pnlDropDownList.BorderWidth = 1;
          pnlDropDownList.Width = 300;
          ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.FindControl("ContentPlaceHolder1");
          Panel panel = (Panel)cph.FindControl("Panel1");
          cph.Controls.Add(pnlDropDownList);
       }

如何在内容页中添加面板

是的,你需要在Master而不是Page中找到你的控件。

像下面。

ContentPlaceHolder cph = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");

在你想要在aspx页面中添加新的下拉列表面板的面板中添加PlaceHolder控件

<asp:Panel ID="Panel1" runat="server"> 
    <asp:PlaceHolder ID="placeholder1" runat="server"></PlaceHolder>
</asp:Panel>

在后面的代码中,使用

将控件添加到页面中
placeholder1.Controls.add(pnlDropDownList);

我不明白你为什么不添加这样的控件

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        <asp:Panel ID="Panel1" runat="server">
            <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
        </asp:Panel>
    </asp:ContentPlaceHolder>