鍍金池/ 教程/ C#/ ASP.NET面板控件
ASP.NET調(diào)試
ASP.NET Web Services
ASP.NET緩存
ASP.NET多線程
ASP.NET面板控件
ASP.NET數(shù)據(jù)綁定
ASP.NET數(shù)據(jù)源
ASP.NET個性化
ASP.Net教程
ASP.NET Ajax控件
ASP.NET生命周期
ASP.NET HTML服務(wù)器
ASP.NET簡介
ASP.NET驗證器
ASP.NET多視圖
ASP.NET網(wǎng)站配置
ASP.NET錯誤管理
ASP.NET自定義控件
ASP.NET LINQ
ASP.NET AdRotator控件
ASP.NET客戶端
ASP.NET文件上傳
ASP.NET服務(wù)器控件
ASP.NET開發(fā)環(huán)境配置
ASP.NET管理狀態(tài)
ASP.NET服務(wù)端
ASP.NET數(shù)據(jù)庫訪問(Access)
ASP.NET基本控件
ASP.NET安全
ASP.NET指令
ASP.NET事件處理
ASP.NET第一個程序
ASP.NET日歷控件

ASP.NET面板控件

Panel控件作為頁面上其他控件的容器。它控制它包含的控件的外觀和可見性。 它還允許以編程方式生成控件。

面板控件的基本語法如下:

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

Panel控件是從WebControl類派生的。 因此,它繼承了相同的所有屬性,方法和事件。 它沒有任何方法或事件。 然而,它具有以下屬性:

編號 屬性 描述
1 BackImageUrl 面板的背景圖像的URL。
2 DefaultButton 獲取或設(shè)置Panel控件中包含的默認按鈕的標識符。
3 Direction 面板中的文字方向。
4 GroupingText 允許將文本分組為一個字段。
5 HorizontalAlign 面板內(nèi)容的水平對齊。
6 ScrollBars 指定面板內(nèi)滾動條的可見性和位置。
7 Wrap 允許文字換行。

使用面板控制

這里從具有特定高度和寬度以及邊框樣式的簡單的可滾動面板開始了解學習。ScrollBars屬性被設(shè)置為兩個滾動條,因此兩個滾動條都被渲染。

源文件具有面板標簽的以下代碼:

<asp:Panel ID="Panel1" runat="server" BorderColor="#990000" BorderStyle="Solid" 
   Borderstyle="width:1px" Height="116px" ScrollBars="Both" style="width:278px">

   This is a scrollable panel.
   <br />
   <br />

   <asp:Button ID="btnpanel" runat="server" Text="Button" style="width:82px" />
</asp:Panel>

面板呈現(xiàn)如下:

示例

以下示例演示動態(tài)內(nèi)容生成。用戶提供要在面板上生成的標簽控件和文本框的數(shù)量。 這些控件是以編程方式生成的。

使用屬性窗口更改面板的屬性。 在設(shè)計視圖中選擇控件時,屬性窗口將顯示該特定控件的屬性,并允許在不輸入的情況下進行更改。

首先打開Visual Studio,創(chuàng)建一個名稱為:PanelControl 的空ASP.NET網(wǎng)站項目,如下所示 -

在這個項目名稱上點擊右鍵,在彈出的選項中選擇:添加 -> 添加新項,選擇Web窗體,創(chuàng)建一個文件:Default.aspx 。

該示例的源文件(Default.aspx)如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>ASP.Net面板示例</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
      <asp:Panel ID="pnldynamic" runat="server" BorderColor="#990000" 
         BorderStyle="Solid" Height="150px"  ScrollBars="Auto" style="width:60%" BackColor="#CCCCFF"  Font-Names="Courier" HorizontalAlign="Center">

         該面板顯示動態(tài)控制生成:
         <br />
         <br />
      </asp:Panel>
   </div>

   <table style="width: 51%;">
      <tr>
         <td class="style2">標簽數(shù)量:</td>
         <td class="style1">
            <asp:DropDownList ID="ddllabels" runat="server">
               <asp:ListItem>0</asp:ListItem>
               <asp:ListItem>1</asp:ListItem>
               <asp:ListItem>2</asp:ListItem>
               <asp:ListItem>3</asp:ListItem>
               <asp:ListItem>4</asp:ListItem>
            </asp:DropDownList>
         </td>
      </tr>

      <tr>
         <td class="style2"> </td>
         <td class="style1"> </td>
      </tr>

      <tr>
         <td class="style2">文本框數(shù)量 :</td>
         <td class="style1">
            <asp:DropDownList ID="ddltextbox" runat="server">
               <asp:ListItem>0</asp:ListItem>
               <asp:ListItem Value="1"></asp:ListItem>
               <asp:ListItem>2</asp:ListItem>
               <asp:ListItem>3</asp:ListItem>
               <asp:ListItem Value="4"></asp:ListItem>
            </asp:DropDownList>
         </td>
      </tr>

      <tr>
         <td class="style2"> </td>
         <td class="style1"> </td>
      </tr>

      <tr>
         <td class="style2">
            <asp:CheckBox ID="chkvisible" runat="server" 
               Text="使用面板可視化" />
         </td>

         <td class="style1">
            <asp:Button ID="btnrefresh" runat="server" Text="提交更新生成" 
               style="width:129px" />
         </td>
      </tr>
   </table>
    </form>
</body>
</html>

Page_Load事件后端的代碼(Default.aspx.cs)負責動態(tài)生成控件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //make the panel visible
        pnldynamic.Visible = chkvisible.Checked;

        //generating the lable controls:
        int n = Int32.Parse(ddllabels.SelectedItem.Value);
        for (int i = 1; i <= n; i++)
        {
            Label lbl = new Label();
            lbl.Text = "Label" + (i).ToString();
            pnldynamic.Controls.Add(lbl);
            pnldynamic.Controls.Add(new LiteralControl("<br />"));
        }

        //generating the text box controls:

        int m = Int32.Parse(ddltextbox.SelectedItem.Value);
        for (int i = 1; i <= m; i++)
        {
            TextBox txt = new TextBox();
            txt.Text = "Text Box" + (i).ToString();
            pnldynamic.Controls.Add(txt);
            pnldynamic.Controls.Add(new LiteralControl("<br />"));
        }
    }
}

運行上面項目,得到以下結(jié)果 -

選擇相關(guān)選項,并勾選使用面板可視化,然后點擊:提交更新生成 ,得到以下結(jié)果 -