asp.net動(dòng)態(tài)加載用戶控件,關(guān)于后臺(tái)添加、修改的思考
更新時(shí)間:2009年04月20日 18:03:03 作者:
一直以來(lái),我都在思考,一些繁瑣的操作,比如我們一般的管理后臺(tái),很多都是數(shù)據(jù)的添加、修改與刪除,列表的操作,而且一般我們都是用.aspx文件去做的。
看下下面這個(gè)典型的后臺(tái)(比較粗糙):

說(shuō)實(shí)在,我很厭倦全部用.aspx文件去做,比如“友情連接”這個(gè)模塊,就有“添加友情連接”“修改友情連接”“友情連接列表”,簡(jiǎn)單的話,可以把“添加”“修改”合成一個(gè)文件。每次都去建立一個(gè).aspx文件。我現(xiàn)在的想法是用“用戶控件+配置文件”去實(shí)現(xiàn),雖然文件數(shù)目可能不會(huì)少很多。但在編程到一定地步,我想大家會(huì)有跟我一樣的想法。
首先需要涉及的是動(dòng)態(tài)添加“用戶控件”,這個(gè)可以根據(jù)傳參來(lái)動(dòng)態(tài)加載,代碼如下:
protected Control control;
protected void Page_Load(object sender, EventArgs e)
{
//by ahuinan 2009-4-18
int id = Convert.ToInt32(Request.QueryString["id"]);
switch (id)
{
case 0://不要加載用戶控件
Response.Write("您沒有加載任何控件");
break;
case 1://加載用戶控件
control = Page.LoadControl("~/login.ascx");
control.ID = "uc1";//這里命名是為了可以取得里面控件的值
placeholder1.Controls.Add(control);
break;
default:
break;
}
}
而只需要用到一個(gè).aspx文件,且這個(gè)文件中有個(gè)用戶控件,代碼如下:
<asp:placeholder runat="server" ID="placeholder1"></asp:placeholder>
如果這個(gè)“用戶控件”中有一個(gè)ID為“tbxUserName”的TextBox,那么在.aspx文件中,要取得這個(gè)的值,代碼如下:
((TextBox)placeholder1.FindControl("uc1").FindControl("tbxUserName")).Text
這里是簡(jiǎn)單的說(shuō)下我的思路,要配合前面我說(shuō)過(guò)的http://www.fzitv.net/article/17829.htm這篇文章實(shí)現(xiàn)一個(gè)繼承自Page的類,在里面寫上動(dòng)態(tài)加載用戶控件的代碼。需要配合一個(gè)配置文件去做,這樣左邊的菜單和動(dòng)態(tài)加載的控件可以統(tǒng)一在配置文件中處理。想法是很清晰的,但寫得有點(diǎn)亂,希望有這方面思考的朋友和我交流下,最近和幾個(gè)朋友聊了,但都沒有這樣的想法。

說(shuō)實(shí)在,我很厭倦全部用.aspx文件去做,比如“友情連接”這個(gè)模塊,就有“添加友情連接”“修改友情連接”“友情連接列表”,簡(jiǎn)單的話,可以把“添加”“修改”合成一個(gè)文件。每次都去建立一個(gè).aspx文件。我現(xiàn)在的想法是用“用戶控件+配置文件”去實(shí)現(xiàn),雖然文件數(shù)目可能不會(huì)少很多。但在編程到一定地步,我想大家會(huì)有跟我一樣的想法。
首先需要涉及的是動(dòng)態(tài)添加“用戶控件”,這個(gè)可以根據(jù)傳參來(lái)動(dòng)態(tài)加載,代碼如下:
復(fù)制代碼 代碼如下:
protected Control control;
protected void Page_Load(object sender, EventArgs e)
{
//by ahuinan 2009-4-18
int id = Convert.ToInt32(Request.QueryString["id"]);
switch (id)
{
case 0://不要加載用戶控件
Response.Write("您沒有加載任何控件");
break;
case 1://加載用戶控件
control = Page.LoadControl("~/login.ascx");
control.ID = "uc1";//這里命名是為了可以取得里面控件的值
placeholder1.Controls.Add(control);
break;
default:
break;
}
}
而只需要用到一個(gè).aspx文件,且這個(gè)文件中有個(gè)用戶控件,代碼如下:
復(fù)制代碼 代碼如下:
<asp:placeholder runat="server" ID="placeholder1"></asp:placeholder>
如果這個(gè)“用戶控件”中有一個(gè)ID為“tbxUserName”的TextBox,那么在.aspx文件中,要取得這個(gè)的值,代碼如下:
復(fù)制代碼 代碼如下:
((TextBox)placeholder1.FindControl("uc1").FindControl("tbxUserName")).Text
這里是簡(jiǎn)單的說(shuō)下我的思路,要配合前面我說(shuō)過(guò)的http://www.fzitv.net/article/17829.htm這篇文章實(shí)現(xiàn)一個(gè)繼承自Page的類,在里面寫上動(dòng)態(tài)加載用戶控件的代碼。需要配合一個(gè)配置文件去做,這樣左邊的菜單和動(dòng)態(tài)加載的控件可以統(tǒng)一在配置文件中處理。想法是很清晰的,但寫得有點(diǎn)亂,希望有這方面思考的朋友和我交流下,最近和幾個(gè)朋友聊了,但都沒有這樣的想法。
相關(guān)文章
asp.net updatepanel 導(dǎo)致JS不能加載,而無(wú)法使用的解決方法
asp.net updatepanel 局部刷新,導(dǎo)致JS不能加載,而無(wú)法使用,而且 updatepanel會(huì)刷兩次,郁悶的,解決方法如下2013-08-08
.NET CORE中使用AutoMapper進(jìn)行對(duì)象映射的方法
這篇文章主要給大家介紹了關(guān)于.NET CORE中使用AutoMapper進(jìn)行對(duì)象映射的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.NET CORE具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
asp.net 導(dǎo)出到CSV文件亂碼的問(wèn)題
導(dǎo)出到CSV文件亂碼的問(wèn)題,需要的朋友可以參考下。2010-03-03
詳解免費(fèi)開源的DotNet二維碼操作組件ThoughtWorks.QRCode(.NET組件介紹之四)
本篇文章主要介紹了免費(fèi)開源的DotNet二維碼操作組件ThoughtWorks.QRCode,非常具有實(shí)用價(jià)值,有興趣的同學(xué)可以來(lái)了解一下。2016-12-12
ASP.NET連接sql2008數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了ASP.NET連接sql2008數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01
Visual Studio 2017如何用正則修改部分內(nèi)容詳解
這篇文章主要給大家介紹了關(guān)于Visual Studio 2017如何用正則修改部分內(nèi)容的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
適用與firefox ASP.NET無(wú)刷新二級(jí)聯(lián)動(dòng)下拉列表
適用與firefox ASP.NET無(wú)刷新二級(jí)聯(lián)動(dòng)下拉列表...2007-08-08
ASP.NET?Core管理應(yīng)用程序狀態(tài)
這篇文章介紹了ASP.NET?Core管理應(yīng)用程序狀態(tài)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

