黃漢堂+汪潔
摘要:該文結(jié)合實(shí)際應(yīng)用和教學(xué)實(shí)踐應(yīng)用,通過使用用戶控件,簡化編程過程,實(shí)現(xiàn)asp.net網(wǎng)站設(shè)計(jì)的模塊化設(shè)計(jì)。
關(guān)鍵詞:asp.net;用戶控件
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)28-0086-02
Abstract: According to practical application and teaching practice application,user controls were applied to simplify the programming process and implement the modular design of ASP.NET web site.
Key words: asp.net; user control
asp.net的應(yīng)用開發(fā)已經(jīng)相當(dāng)普遍,相應(yīng)的技術(shù)也得到不斷地挖掘,從各方面提升了應(yīng)用的水平,其中的用戶控件(WebUserControl)的作用在整個(gè)設(shè)計(jì)過程中尤為突出,本文旨在對用戶控件的使用提供一點(diǎn)借鑒。
目前大多數(shù)實(shí)用的asp.net應(yīng)用設(shè)計(jì)不再是控件的簡單、隨意堆砌,而是趨于模塊化的設(shè)計(jì),而模塊是可以重復(fù)使用的,設(shè)計(jì)高質(zhì)量、功能化的模塊,對整個(gè)asp.net應(yīng)用設(shè)計(jì)是至關(guān)重要的,用戶控件就是居于這樣的理念提供相應(yīng)的功能。
在整個(gè)asp.net應(yīng)用設(shè)計(jì)中很多網(wǎng)頁中功能模塊實(shí)現(xiàn)的功能和作用是相同或相近的,往往不同的是外觀的長、寬比例,色彩,提供的數(shù)據(jù)內(nèi)容、顯示的行數(shù)、顯示方式不同而已,在設(shè)計(jì)過程中充分使用用戶控件,可以設(shè)計(jì)較為合理的用戶控件,提高asp.net應(yīng)用設(shè)計(jì)的效率。
用戶控件的設(shè)計(jì)和其他asp.net容器對象設(shè)計(jì)一樣,主要包括在用戶控件內(nèi)添加要用到的功能控件,并針對功能控件設(shè)計(jì)相應(yīng)的代碼來實(shí)現(xiàn)相應(yīng)的功能,由于用戶控件的使用情況在主頁和不同的功能網(wǎng)頁上是有不同的要求,如主頁,基本包羅萬象(針對網(wǎng)站的主題、內(nèi)容、板塊),內(nèi)容簡潔、板塊豐富;功能網(wǎng)頁,要求內(nèi)容盡可能詳盡。顯然主頁和功能網(wǎng)頁對應(yīng)板塊的功能是相同的,相差的僅僅是前面提到的長、寬比例等不同,即使是不同的板塊也有很多功能是一致的,不同的僅僅是獲取數(shù)據(jù)的方式,如主題、關(guān)鍵詞,以及相應(yīng)分類。
由此,我們可以在設(shè)計(jì)過程中設(shè)計(jì)合理的用戶控件,當(dāng)需要對主頁、功能網(wǎng)頁進(jìn)行修改、調(diào)整時(shí),只需對用戶控件進(jìn)行修改、調(diào)整,實(shí)現(xiàn)對整個(gè)網(wǎng)站的調(diào)整,當(dāng)然用戶控件的設(shè)計(jì)也要針對不同的應(yīng)用有不同的策略。對外觀不變的對象(用戶控件),基本采用靜態(tài)的,不涉及父對象參數(shù)傳遞,如,網(wǎng)頁的主題,圖標(biāo)等等,對于主頁和功能網(wǎng)頁的板塊所用的用戶控件的設(shè)計(jì)才是我們設(shè)計(jì)的主要部分,設(shè)計(jì)中主要考慮用戶控件獲取數(shù)據(jù)庫表的方式、內(nèi)容、顯示等,重點(diǎn)是參數(shù)傳遞,即:獲取網(wǎng)頁的標(biāo)識(判斷是主頁或功能網(wǎng)頁)、板塊標(biāo)題、內(nèi)容分類等,將以上參數(shù)傳遞給用戶控件,實(shí)現(xiàn)對用戶控件中的數(shù)據(jù)獲取代碼進(jìn)行相應(yīng)的拼接,再由對應(yīng)的功能控件(如listview,datalist等)控制顯示的方式,如長、寬比例,顯示行數(shù)。
現(xiàn)在很多網(wǎng)站的主頁和功能網(wǎng)頁都由多個(gè)板塊組成,設(shè)計(jì)之初,設(shè)計(jì)一個(gè)類似前面的數(shù)據(jù)訪問用戶控件,對提高網(wǎng)站設(shè)計(jì)的效率是一個(gè)不錯(cuò)的做法,類似這樣的功能模塊,如個(gè)性化的用戶注冊、登錄,計(jì)數(shù)器等都可以設(shè)計(jì)成用戶控件。
以下是一個(gè)用戶控件的使用例子,主要是一個(gè)從主頁(index.aspx)傳遞一個(gè)文本數(shù)據(jù)(表名)到用戶控件,并通過用戶控件中的功能控件(文本框TextBox1)將傳遞的內(nèi)容顯示出來。
用戶控件“WebUserControl1.ascx”代碼如下:
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="WebUserControl1.ascx.cs" Inherits="用戶控件舉例.WebUserControl1" %>
用戶控件“WebUserControl1.ascx.cs”代碼如下:
public partial class WebUserControl1 : System.Web.UI.UserControl
{
private string table_name = "";
public string _table_name
{
get { return table_name; }
set { table_name = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = table_name.ToString();
}
}
主頁“index.aspx”代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="用戶控件舉例.index" %>
<%@ Register src="WebUserControl1.ascx"
tagname="WebUserControl1" tagprefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
主頁“index.aspx.cs”代碼如下:
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
WebUserControl11._table_name = "名單";
}
}
以上僅傳遞一個(gè)參數(shù)的例子,如傳遞參數(shù)較多,可用數(shù)組形式傳遞。
當(dāng)然作為網(wǎng)站的運(yùn)行,一般網(wǎng)站的改版或變換主題色彩也是常有的事,改版、改變主題色彩一般僅僅是改變網(wǎng)站的外觀結(jié)構(gòu),板塊的位置和相應(yīng)色彩,對以上用戶控件本身來講不會做大的修改,如果能將網(wǎng)站改版或主題的相應(yīng)參數(shù)傳遞給用戶控件,用戶控件根據(jù)參數(shù)作出相應(yīng)的自主調(diào)整適應(yīng)整個(gè)網(wǎng)站的格調(diào),更能體現(xiàn)用戶控件的設(shè)計(jì)初衷——提高效率。
參考文獻(xiàn):
[1] 宮繼兵,孫勝濤,王穎. ASP.NET2.0Web數(shù)據(jù)庫開發(fā)教程[M].北京:機(jī)械工業(yè)出版社,2014.
[2] 常永英. ASP.NET程序設(shè)計(jì)教程(C#)版[M]. 北京:機(jī)械工業(yè)出版社,2008.