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

說實(shí)在,我很厭倦全部用.aspx文件去做,比如“友情連接”這個(gè)模塊,就有“添加友情連接”“修改友情連接”“友情連接列表”,簡(jiǎn)單的話,可以把“添加”“修改”合成一個(gè)文件。每次都去建立一個(gè).aspx文件。我現(xiàn)在的想法是用“用戶控件+配置文件”去實(shí)現(xiàn),雖然文件數(shù)目可能不會(huì)少很多。但在編程到一定地步,我想大家會(huì)有跟我一樣的想法。
首先需要涉及的是動(dòng)態(tài)添加“用戶控件”,這個(gè)可以根據(jù)傳參來動(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)單的說下我的思路,要配合前面我說過的http://www.dbjr.com.cn/article/17829.htm這篇文章實(shí)現(xiàn)一個(gè)繼承自Page的類,在里面寫上動(dòng)態(tài)加載用戶控件的代碼。需要配合一個(gè)配置文件去做,這樣左邊的菜單和動(dòng)態(tài)加載的控件可以統(tǒng)一在配置文件中處理。想法是很清晰的,但寫得有點(diǎn)亂,希望有這方面思考的朋友和我交流下,最近和幾個(gè)朋友聊了,但都沒有這樣的想法。

說實(shí)在,我很厭倦全部用.aspx文件去做,比如“友情連接”這個(gè)模塊,就有“添加友情連接”“修改友情連接”“友情連接列表”,簡(jiǎn)單的話,可以把“添加”“修改”合成一個(gè)文件。每次都去建立一個(gè).aspx文件。我現(xiàn)在的想法是用“用戶控件+配置文件”去實(shí)現(xiàn),雖然文件數(shù)目可能不會(huì)少很多。但在編程到一定地步,我想大家會(huì)有跟我一樣的想法。
首先需要涉及的是動(dòng)態(tài)添加“用戶控件”,這個(gè)可以根據(jù)傳參來動(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)單的說下我的思路,要配合前面我說過的http://www.dbjr.com.cn/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 core應(yīng)用docke部署到centos7的全過程
這篇文章主要給大家介紹了關(guān)于asp.net core應(yīng)用docke部署到centos7的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08ASP.NET過濾HTML標(biāo)簽只保留換行與空格的方法
這篇文章主要介紹了ASP.NET過濾HTML標(biāo)簽只保留換行與空格的方法,包含網(wǎng)上常見的方法以及對(duì)此方法的改進(jìn),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12.NET Core使用Topshelf方式創(chuàng)建Windows服務(wù)的全過程記錄
這篇文章主要給大家介紹了關(guān)于.NET Core使用Topshelf方式創(chuàng)建Windows服務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11C#實(shí)現(xiàn)Web文件上傳的兩種方法實(shí)例代碼
在Web編程中,我們常需要把一些本地文件上傳到Web服務(wù)器上,上傳后,用戶可以通過瀏覽器方便地瀏覽這些文件,應(yīng)用十分廣泛。2013-07-07利用ASP.NET MVC+EasyUI+SqlServer搭建企業(yè)開發(fā)框架
本文主要介紹使用asp.net mvc4、sqlserver、jquery2.0和easyui1.4.5搭建企業(yè)級(jí)開發(fā)框架的過程,希望能夠幫到大家。2016-04-04Asp.net ajax實(shí)現(xiàn)任務(wù)提示頁面的簡(jiǎn)單代碼
這篇文章介紹了Asp.net ajax實(shí)現(xiàn)任務(wù)提示頁面的簡(jiǎn)單代碼,有需要的朋友可以參考一下2013-11-11asp.net B2B網(wǎng)站對(duì)接支付寶接口
首先,網(wǎng)上購物系統(tǒng)必須與支付寶公司簽訂合作協(xié)議,以確保從本購物網(wǎng)站上傳到2010-06-06AjaxControlToolKit 顯示瀏覽者本地語言的方法
使用最新版的AjaxControlToolKit控件2008-12-12