六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

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

[摘要]我們寫用戶控件的目的就是放到頁(yè)面中去。根據(jù)不同的條件,我們可以改變加載的用戶控件!其實(shí)原理就是MasterPage的原理。這個(gè)MasterPage會(huì)在vs2005中提供,但是現(xiàn)在也可以實(shí)現(xiàn)。在我的項(xiàng)...
我們寫用戶控件的目的就是放到頁(yè)面中去。根據(jù)不同的條件,我們可以改變加載的用戶控件!

其實(shí)原理就是MasterPage的原理。這個(gè)MasterPage會(huì)在vs2005中提供,但是現(xiàn)在也可以實(shí)現(xiàn)。

在我的項(xiàng)目中就用到:



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

下面簡(jiǎn)單介紹一下動(dòng)態(tài)加載葉面組件:

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

在程序中動(dòng)態(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>
/// 頁(yè)面組件,從用戶組件獲取
/// </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>
/// 用戶組件相對(duì)路徑及組件名稱
/// </summary>
public string SkinPath
{
get
{
return skinPath;
}
set
{
skinPath = value;
SkinFilename = value.TrimStart('/');

}
}




}
}


比如我的一個(gè)應(yīng)用:

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ù)葉面的地方引用組件就可以了

比如:



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





主站蜘蛛池模板: 污在线视频 | 人人公开免费超级碰碰碰视频 | 午夜性福利视频 | 影音先锋国产系列精品 | 日本黄色片网址 | 天天狠天天操 | 欧美又粗又大又硬又长又爽视频 | 四虎影院永久网站 | 亚洲高清在线播放 | 一区二区视频网 | 性生大片一级毛片免费观看 | 夜鲁鲁鲁夜夜综合视频欧美 | 日本爱爱小视频 | 日韩视频在线观看中字 | 欧美视频导航| 日本韩国理论片大全在线 | 日本高清视频在线的 | 色老头一级毛片 | 亚洲日本网站 | 一级做a爰片久久免费 | 日本在线不卡免 | 亚洲sss| 亚洲sss| 亚洲成在线 | 午夜精品福利视频 | 日本三级一区 | 日韩午夜伦 | 午夜爱爱毛片xxxx视频免费看 | 日本黄色一级大片 | 亚洲天堂久久 | 小明精品国产一区二区三区 | 日本男女动态图 | 亚洲欧洲日韩国产 | 青青青免费高清在线观看视频在线 | 欧美做真爱免费无遮挡 | 奇米婷婷 | 欧美一级免费 | 青青青国产高清在线观看视频 | 天天上天天操 | 天天综合网色中文字幕 | 亚洲我不卡 |