在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

ASP.NET自定義控件

ASP.NET允許用戶創(chuàng)建自己的控件。這些用戶定義的控件分為:

  • 用戶控件
  • 自定義控件

用戶控件

用戶控件的行為與微型ASP.NET頁面或Web表單類似,可以被許多其他頁面使用。這些是從System.Web.UI.UserControl類派生的。這些控件具有以下特征:

  • 它們有一個.ascx擴展名。
  • 它們可能不包含任何<html>,<body><form>標簽。
  • 它們有一個控件指令,而不是一個Page指令。

為了理解這個概念,讓我們創(chuàng)建一個簡單的用戶控件,它將作為頁面的頁腳。要創(chuàng)建和使用用戶控件,請執(zhí)行以下步驟:

  • 創(chuàng)建一個新的Web應用程序(ASP.NET網站項目:UserControls )。
  • 右鍵單擊【解決方案資源管理器】上的項目文件夾,然后選擇【添加新項目】。
  • 從【添加新項目】對話框中選擇【Web用戶控件】并將其命名為footer.ascx。 最初,footer.ascx只包含一個控件指令。
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="footer.ascx.cs" 
     Inherits="customcontroldemo.footer" %>
    
  • 將下面的代碼添加到文件中(上面代碼保持不變,新增下面代碼):

    <table>
     <tr>
        <td align="center"> Copyright ?2012 - 2018 Yiibai Yiibai</td>
     </tr>
    
     <tr>
        <td align="center"> Location: Haikou </td>
     </tr>
    </table>
    

要將用戶控件添加到網頁,要將Register指令和用戶控件的一個實例添加到頁面。Default.aspx文件中的代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="~/footer.ascx" TagName="footer" TagPrefix="Tfooter" %>
<!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>用戶控件示例</title>
</head>
<body>
    <form id="form1" runat="server">
         <div>

            <asp:Label ID="Label1" runat="server" Text="Welcome to ASP.Net Yiibai "></asp:Label>


         </div>
        <hr />
         <Tfooter:footer ID="footer1" runat="server" />

    </form>
</body>
</html>

需要注意以下幾點:

  • Register指令為控件指定標簽名稱和標簽前綴。
    <%@ Register Src="~/footer.ascx" TagName="footer" TagPrefix="Tfooter" %>
    
  • 在頁面上添加用戶控件時,應使用以下標記名稱和前綴:
    <Tfooter:footer ID="footer1" runat="server" />
    

運行上面項目,得到以下結果 -

自定義控件

自定義控件作為單獨的程序集部署。 它們被編譯成動態(tài)鏈接庫(DLL),并用作其他ASP.NET服務器控件。它們可以通過以下任何一種方式創(chuàng)建:

  • 通過從現有控件派生自定義控件
  • 通過組成一個新的自定義控件組合兩個或更多現有的控件。
  • 從基控制類派生。

為了理解這個概念,讓我們創(chuàng)建一個自定義控件,它將簡單地在瀏覽器上顯示一條文本消息。 要創(chuàng)建此控件,請執(zhí)行以下步驟:

  • 創(chuàng)建一個新的網站(ASP.NET網站項目:CustomControls )。右鍵單擊【解決方案資源管理器】中樹頂部的解決方案(不是項目)。

  • “新建項目”對話框中,從項目模板中選擇“ASP.NET服務器控件”(如果沒有找到,請從左側的聯機中搜索安裝)。

上述步驟添加了一個新項目,并為該解決方案創(chuàng)建了一個完整的自定義控件,稱為ServerControl1。要使用此控件,必須在將網頁注冊到網頁之前將其添加為網站的引用。 要添加對現有項目的引用,請右鍵單擊該項目名稱(不是解決方案),然后單擊添加引用。

從添加引用對話框的項目選項卡中選擇CustomControls項目。 解決方案資源管理器應顯示參考如下圖所示 -

要在頁面上使用該控件,請在@Page指令下添加Register指令:

<%@ Register Assembly="CustomControls"  Namespace="CustomControls"  TagPrefix="ccs" %>

下面就可以使用該控件,與其他控件類似。

<form id="form1" runat="server">
   <div>
      <ccs:ServerControl1 runat="server" Text = "I am a Custom Server Control" />
   </div> 
</form>

在上面,我們設置了自定義控件的Text屬性的值。ASP.NET在創(chuàng)建控件時默認添加了此屬性。但還需要以下后端代碼實現顯示功能。ServerControl1.cs 的代碼如下 -

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CustomControls
{
   [DefaultProperty("Text")]
   [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1 >")]

   public class ServerControl1 : WebControl
   {
      [Bindable(true)]
      [Category("Appearance")]
      [DefaultValue("")]
      [Localizable(true)]

      public string Text
      {
         get
         {
            String s = (String)ViewState["Text"];
            return ((s == null) ? "[" + this.ID + "]" : s);
         }

         set
         {
            ViewState["Text"] = value;
         }
      }

      protected override void RenderContents(HtmlTextWriter output)
      {
         output.Write(Text);
      }
   }
}