黃漢堂+汪潔
摘要:該文結合實際應用和教學實踐應用,通過使用用戶控件,簡化編程過程,實現asp.net網站設計的模塊化設計。
關鍵詞:asp.net;用戶控件
中圖分類號:TP311 文獻標識碼: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的應用開發已經相當普遍,相應的技術也得到不斷地挖掘,從各方面提升了應用的水平,其中的用戶控件(WebUserControl)的作用在整個設計過程中尤為突出,本文旨在對用戶控件的使用提供一點借鑒。
目前大多數實用的asp.net應用設計不再是控件的簡單、隨意堆砌,而是趨于模塊化的設計,而模塊是可以重復使用的,設計高質量、功能化的模塊,對整個asp.net應用設計是至關重要的,用戶控件就是居于這樣的理念提供相應的功能。
在整個asp.net應用設計中很多網頁中功能模塊實現的功能和作用是相同或相近的,往往不同的是外觀的長、寬比例,色彩,提供的數據內容、顯示的行數、顯示方式不同而已,在設計過程中充分使用用戶控件,可以設計較為合理的用戶控件,提高asp.net應用設計的效率。
用戶控件的設計和其他asp.net容器對象設計一樣,主要包括在用戶控件內添加要用到的功能控件,并針對功能控件設計相應的代碼來實現相應的功能,由于用戶控件的使用情況在主頁和不同的功能網頁上是有不同的要求,如主頁,基本包羅萬象(針對網站的主題、內容、板塊),內容簡潔、板塊豐富;功能網頁,要求內容盡可能詳盡。顯然主頁和功能網頁對應板塊的功能是相同的,相差的僅僅是前面提到的長、寬比例等不同,即使是不同的板塊也有很多功能是一致的,不同的僅僅是獲取數據的方式,如主題、關鍵詞,以及相應分類。
由此,我們可以在設計過程中設計合理的用戶控件,當需要對主頁、功能網頁進行修改、調整時,只需對用戶控件進行修改、調整,實現對整個網站的調整,當然用戶控件的設計也要針對不同的應用有不同的策略。對外觀不變的對象(用戶控件),基本采用靜態的,不涉及父對象參數傳遞,如,網頁的主題,圖標等等,對于主頁和功能網頁的板塊所用的用戶控件的設計才是我們設計的主要部分,設計中主要考慮用戶控件獲取數據庫表的方式、內容、顯示等,重點是參數傳遞,即:獲取網頁的標識(判斷是主頁或功能網頁)、板塊標題、內容分類等,將以上參數傳遞給用戶控件,實現對用戶控件中的數據獲取代碼進行相應的拼接,再由對應的功能控件(如listview,datalist等)控制顯示的方式,如長、寬比例,顯示行數。
現在很多網站的主頁和功能網頁都由多個板塊組成,設計之初,設計一個類似前面的數據訪問用戶控件,對提高網站設計的效率是一個不錯的做法,類似這樣的功能模塊,如個性化的用戶注冊、登錄,計數器等都可以設計成用戶控件。
以下是一個用戶控件的使用例子,主要是一個從主頁(index.aspx)傳遞一個文本數據(表名)到用戶控件,并通過用戶控件中的功能控件(文本框TextBox1)將傳遞的內容顯示出來。
用戶控件“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 = "名單";
}
}
以上僅傳遞一個參數的例子,如傳遞參數較多,可用數組形式傳遞。
當然作為網站的運行,一般網站的改版或變換主題色彩也是常有的事,改版、改變主題色彩一般僅僅是改變網站的外觀結構,板塊的位置和相應色彩,對以上用戶控件本身來講不會做大的修改,如果能將網站改版或主題的相應參數傳遞給用戶控件,用戶控件根據參數作出相應的自主調整適應整個網站的格調,更能體現用戶控件的設計初衷——提高效率。
參考文獻:
[1] 宮繼兵,孫勝濤,王穎. ASP.NET2.0Web數據庫開發教程[M].北京:機械工業出版社,2014.
[2] 常永英. ASP.NET程序設計教程(C#)版[M]. 北京:機械工業出版社,2008.