日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)C#.NET → WebUserControl用戶控件總結(jié)歸納

      WebUserControl用戶控件總結(jié)歸納

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2011/1/29 21:30:36字體大。A-A+

      作者:佚名點擊:378次評論:0次標(biāo)簽: 用戶控件

      • 類型:行業(yè)軟件大。382M語言:中文 評分:10.0
      • 標(biāo)簽:
      立即下載

      看了好多人都寫了用戶控件方面的文章,俺自己也來一篇總結(jié),這應(yīng)該不算抄襲吧,嘿嘿!!新建一個用戶控件:

      右擊項目添加新項,彈出如下圖所示界面,選擇web用戶控件;

      為用戶控件添加屬性:01publicstringUserName
      02
      {
      03
          get
      04
          {
      05
              returntxtUserName.Text;
      06
          }
      07    set
      08    {
      09        txtUserName.Text = value;
      10    }
      11
      }

      編譯之后在客戶端我們就可以訪問到這個UserName屬性,對其進行賦值取值操作,在客戶端的用戶控件屬性一欄看到被公開的UserName屬性: 

      當(dāng)然我們也可以不以公開屬性的方式與外界交互,我們可以在客戶端通過FindControl的方式直接操作用戶控件內(nèi)部的控件;

      為用戶控件添加事件:

      這樣可以在客戶端方便操作:
       01
      publicpartialclassWebUserControl : System.Web.UI.UserControl
      02
      {
      03
          public  delegate  void  submithandler(objectsender,EventArgs e);
      04
          public  eventsubmithandler MySubmitEvent;
      05    protectedvoidPage_Load(objectsender, EventArgs e)
      06    {
      07  
      08    }
      09
          publicstringUserName
      10
          {
      11
              get
      12
              {
      13
                  returntxtUserName.Text;
      14
              }
      15
              set
      16
              {
      17
                  txtUserName.Text = value;
      18
             &
      19
          }
      20     protectedvoidButton1_Click(objectsender, EventArgs e)
      21     {
      22         if(MySubmitEvent != null)
      23        
       {
      24             MySubmitEvent(this, e);
      25         }
      26     }
      27    
      28 }

      首先定義了一個委托(這里叫submithandler),他有兩個參數(shù)(也可以不定義參數(shù),參數(shù)可以用于傳遞數(shù)據(jù)),

       然后定義了一個委托變量的事件MySubmitEvent;

      最后在當(dāng)前的事件中判斷事件是否被訂閱,如果有訂閱者,則觸發(fā)這個事件,這個被公開的事件的訂閱是被放在客戶端的,由客戶端定義事件的回調(diào)函數(shù)(我覺得叫回調(diào)函數(shù)挺容易理解的,不知道這么叫對不對?);

      這樣用戶控件的兩個與外界交互的重要方式就搞定了,在使用用戶控件的時候還有一個地方需要注意,就是用戶控件內(nèi)部的控件的ID在客戶端會解析為用戶控件ID_子控件ID的形式,

      所以在用客戶端腳本操作

      他們的時候需要用到一個重要的屬性ClientID;

      01 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

      02 <asp:LiteralID="Literal1"runat="server">用戶名:</asp:Literal><asp:TextBoxID="txtUserName"runat="server"></asp:TextBox><br/>

      03 <asp:LiteralID="Literal2"runat="server">密碼:</asp:Literal><asp:TextBoxID="txtPassWord"runat="server"></asp:TextBox><br/>

      04 <asp:ButtonID="Button1"runat="server"Text="獲取用戶名"onclick="Button1_Click"/> 05 <inputid="Button2"type="button"value="input方式獲取用戶名"  onclick="ShowName()"/>  06 <scripttype="text/javascript"> 07     function ShowName() { 08         alert(document.getElementById("<%=txtUserName.ClientID%>").value); 09     } 10 </script>

      這里txtUserName為用戶控件內(nèi)部的一個子控件的ID,txtUserName.ClientID是獲取用戶控件在客戶端解析之后的最終ID,而<%=txtUserName.ClientID%>得意思就是在asp.net頁面執(zhí)行這段服務(wù)器端代碼

      當(dāng)然對于ClientID的重要還表現(xiàn)在模板以及模板控件的使用上;

      執(zhí)行之后就輸出在這個位置供腳本代碼使用;

      向客戶頁面添加用戶控件:

      1.打開需要用到用戶控件的頁面的設(shè)計界面,直接將用戶控件拖入指定的位置,這樣的話VS會自動的把必要地引用自動幫助我們加上,在源碼也拖是沒有效果哦;

      2.就是手動的敲出那些引用;


      使用用戶控件:

      上面我們已經(jīng)為用戶控件公開了屬性和事件,現(xiàn)在我們就在客戶端使用這些東西;
      01 using System;
      02 using System.Collections.Generic;

      03 using System.Linq;

      04 using System.Web; 05 using System.Web.UI; 06 using System.Web.UI.WebControls; 07   08 public partial class _Default : System.Web.UI.Page  09 { 10     protected void Page_Load(object sender, EventArgs e) 11     { 12           13             //WebUserControl1.UserName = "謝龍寶"; 14           TextBox  txt=WebUserControl1.FindControl("txtUserName")as TextBox; 15           txt.Text = "謝龍寶"; 16           17           WebUserControl1.MySubmitEvent += new WebUserControl.submithandler(WebUserControl1_MySubmitEvent); 18     } 19   20     void WebUserControl1_MySubmitEvent(object sender, EventArgs e) 21     { 22      23         Response.Write(WebUserControl1.UserName); 24     } 25      26 }

      屬性的使用時很簡單的,像使用普通的屬性一樣取值呀賦值呀,通過FindControl的方式直接操作;

       至于事件的使用則也水到渠成,上面說了事件的訂閱時放在客戶端的,所以這里我們就在客戶頁面的加載時訂閱事件(可以理解為給事件指定了一個處理函數(shù)(回調(diào)函數(shù)))

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)