乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      動態(tài)加載用戶控件的組件!(一)

       素行 2007-03-17

      我們寫用戶控件的目的就是放到頁面中去。根據不同的條件,我們可以改變加載的用戶控件!

      其實原理就是MasterPage的原理。這個MasterPage會在vs2005中提供,但是現在也可以實現。

      在我的項目中就用到:

      MasterPage就四個類,其中容器就動態(tài)加載用戶控件。這種功能在vs2005中將無處不在。

      下面簡單介紹一下動態(tài)加載葉面組件:

      我們只需要改變用戶組件的地址就可以動態(tài)改變加載的用戶組件了。

      在程序中動態(tài)改變SkinPath就可以了。

      組件源碼如下:

      using System;
      //using System.Drawing;
      using System.Collections;
      using System.Collections.Specialized;
      using System.Web;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.ComponentModel;
      using System.IO;
      using System.Web.Security;
      using Region.Components;

      namespace Region.Controls {

          [ParseChildren(true)]
          /// <summary>
          /// 頁面組件,從用戶組件獲取
          /// </summary>
          public abstract class SkinnedControl : WebControl, INamingContainer {

              string skinFilename = null;
              string skinName = null;
        string skinPath;

             // string returnURL = null;
            
              /// <summary>
              /// 添加子組件
              /// </summary>
              protected override void CreateChildControls() {
         if(SkinPath == null || SkinPath == "" || SkinPath.Trim() == "")
          return ;
                  Control skin;         
                  skin = LoadSkin();          
                  InitializeSkin(skin);
                  Controls.Add(skin);
              }

              /// <summary>
              /// 獲取摸板組件
              /// </summary>
              /// <returns>組件</returns>
        protected Control LoadSkin()
        {
         Control skin;
         try
         {
          skin = Page.LoadControl(SkinPath);
         }
         catch (FileNotFoundException)
         {
          throw new Exception("找不到文件:[ " + SkinPath + " ] .");
         }
         return skin;
        }

              /// <summary>
              /// 初始化組建摸板
              /// </summary>
              /// <param name="skin">組件</param>
              protected abstract void InitializeSkin(Control skin);


              /// <summary>
              /// 用戶組件名稱
              /// </summary>
        public string SkinFilename
        {
         get
         {
          return skinFilename;
         }
         set
         {
          skinFilename = value;
         }
        }

              /// <summary>
              /// 組件名稱
              /// </summary>
        protected string SkinName
        {
         get
         {
          return skinName;
         }
         set
         {
          skinName = value;
         }
        }

        /// <summary>
        /// 用戶組件相對路徑及組件名稱
        /// </summary>
        public string SkinPath
        {
         get
         {
          return skinPath;
         }
         set
         {
          skinPath = value;
          SkinFilename = value.TrimStart(‘/‘);
             
         }
        }

       

         
          }
      }

      比如我的一個應用:

      switch (context.PageId)
         {
          case "1_1" :
           base.SkinPath = "~/Themes/SignManager/TermList.ascx";
           break ; 
          case "1_1_1" :
           base.SkinPath = "~/Themes/SignManager/TermEdit.ascx";
           break ; 
          case "1_2" :
           base.SkinPath = "~/Themes/SignManager/MemberList.ascx";
           break ; 
          
          case "1_2_1" :
           base.SkinPath = "~/Themes/SignManager/MemberEdit.ascx";
           break ; 
          case "2_1" :
           base.SkinPath = "~/Themes/SignManager/CardSend.ascx";
           break ; 
          case "3_1" :
           base.SkinPath = "~/Themes/SignManager/MemberNoEdit.ascx";
           break ; 
          case "4_1" :
           base.SkinPath = "~/Themes/AcountEdit.ascx";
           break ;
          default :
           base.SkinPath = "";
           break;
         }

       

      基于組建的開發(fā),我們可省去葉面上很多重復性的地方。只需在重復葉面的地方引用組件就可以了

      比如:

      這樣我們就可以 以用戶組件為元素,組件不同的葉面。葉面也可以重用!

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多