博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Placeholder Web 服务器控件使您可以将空容器控件放置到页内,然后在运行时动态添加、删除或依次通过子元素。该控件只呈现其子元素;它不呈现自身的任何标记。

例如,您可能想要根据用户选择的选项,在网页上显示数目可变的按钮。在该情况下,用户不面对可能导致混乱的选择,即那些要么不可用、要么与其自身需要无关的选择。可以动态创建按钮,并将它们添加为 PlaceHolder 控件的子级。

例1:
C#

<head runat="server">
        <script runat="server">
        void Page_load(object sender, EventArgs e)
        {
            HtmlButton myButton = new HtmlButton();
            PlaceHolder1.Controls.Clear();

            myButton.InnerHtml = "Button 1";
            PlaceHolder1.Controls.Add(myButton);

            myButton = new HtmlButton();
            myButton.InnerHtml = "Button 2";
            PlaceHolder1.Controls.Add(myButton);

            myButton = new HtmlButton();
            myButton.InnerHtml = "Button 3";
            PlaceHolder1.Controls.Add(myButton);

            myButton = new HtmlButton();
            myButton.InnerText = "Button 4<>";
            PlaceHolder1.Controls.Add(myButton);
        }
    </script>

</head>

<body>
    <form id="form1" runat="server"> 
        <asp:PlaceHolder ID="PlaceHolder1" runat="server" EnableTheming="true" ></asp:PlaceHolder>
    </form>
</body>

 

例2:
private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
  if (!IsPostBack)
        {
            this.AddControlToPlaceHolder();
        }
    }
    private void AddControlToPlaceHolder()
    {
        PlaceHolder1.Controls.Clear();
        for (int i = 1; i < 6; i++)
        {
            TextBox txt1 = new TextBox();
            txt1.Text = i.ToString();
            PlaceHolder1.Controls.Add(txt1);
            PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
        }
    }