当前位置:编程学习 > asp >>

ASP.NET动态增加控件 应用篇(一)

 

 

在写了这麽多篇後,相信读者 应该 对於 动态控件 有一定的认识,下面 来介绍 藉由动态产生控件来产生,一般企业 常用的表单

目前动态控件的使用上依我经验是比较适合用在,制式表单上,也就是格式、风格很类似的表单上,像是公司常用的请假单、出差单、销售订单、采购订单 等等单据类。

 

首先,先新增MyBase 这各类,这各类的用途,同前篇的介绍,主要在封装一些 函式,目的在让 後面继承者,只需考虑 介面、处理介面上使用者所输入的值,

而整各网页的架构,都会在MyBase 中设定好,藉以实现 我前面所说,制定开发标准的目的

 

MyBase.aspx.cs

MyBase

 1 using System;

 2 using System.Data;

 3 using System.Collections;

 4 using System.Web.UI;

 5 using System.Web.UI.WebControls;

 6 using System.Web.UI.HtmlControls;

 7 using System.Text;

 8 using System.Configuration;

 9

10 public class MyBase : System.Web.UI.Page{

11

12     protected HtmlGenericControl sourceTag;

13     protected Button btnSubmit;

14

15     protected override void OnInit(EventArgs e)

16     {

17         base.OnInit(e);

18         HtmlGenericControl msgTag = new HtmlGenericControl();

19         msgTag.ID = "divMsg";

20         sourceTag.Controls.Add(msgTag);

21

22         Button btnSubmit = new Button();

23         btnSubmit.Click += new EventHandler(SubmitBtn_Click);

24         btnSubmit.Text = "SAVE";

25         sourceTag.Controls.Add(btnSubmit);

26

27         Table myTable = new Table();

28         sourceTag.Controls.Add(myTable);

29         dealTableData(myTable);

30     }

31

32     public virtual void dealTableData(Table myTable)

33     {

34

35     }

36     public virtual void SubmitBtn_Click(Object sender, EventArgs e)

37     {

38     }

39     public virtual void ShowMessage(string msg)

40     {

41         HtmlGenericControl msgTag = (HtmlGenericControl)sourceTag.FindControl("divMsg");

42         LiteralControl lc;

43         lc = new LiteralControl(msg + "<br>");

44         msgTag.Controls.Add(lc);

45     }

46 }

 

 

再来,会新增两各公用类,cusTable, TxtItem,为了让读者能快速看到程式执行结果,这两各类,可以 先放到MyBase.aspx.cs 这里面,就不用预先编译,就能向前篇一样,直接就能看到 程式结果,这样 也方便 读者 能直接 测试、修改,来了解其中程式码。

 

CusTable 是为了来帮助动态 产生 控件使用的一个类,他封装了动态产生的重复使用的程式码,使其更容易被呼叫使用。

TxtItem 是一个Value Object 用来存取,产生 控件 所需要设定的参数。一般参数传递,都是在函数介面中定义所需参数,但一旦这函数用多了以後,想要再去调整,这工程就很大了。

而改用Value Object 这样做就可以将所需参数全部封装在里面,既使後面有需调整参数,也不需去修改介面,另一各好处是,可以藉由该Object 来规范参数的值,该如何设定,例如Width 如只能在1-100 间设定,就可以像如下程式一般来规范。

 1     public int TitleWidth

 2     {

 3         get

 4         {

 5             return _TitleWidth;

 6         }

 7         set

 8         {

 9             if(value < 0)

10                 _TitleWidth = 0;

11             else if (value > 100)

12                 _TitleWidth = 100;

13             else

14                 _TitleWidth = value;

15         }

16     }

 

 

在这同时,我们藉由 这两各 类,就也能规范,使用者 画面产生的 方式 跟标准,可以 让 每各开发者,开发出来的介面都有着相似的外观跟特性。

这让我想到,我之前User 最常在讲,为什麽你们团队 开发出来的画面,都不太一样,有的 靠左对齐,有的是 置中,等等,作为一个管理者,想管好这些,老是靠 文件规范、人工测试等等,都是很吃力的事情,而且会疏失...

 

cusTable

 1 public class cusTable

 2 {

 3     Table myTable;

 4     TableRow tr;

 5

 6     public cusTable(Table fTable)

 7     {

 8         myTable = fTable;

 9         tr = null;

10     }

11

12     public void AddEditControl(TxtItem ti)

13     {

14         AddLabel(ti.Caption, ti.TitleWidth);

15         AddTextBox(ti);

16     }

17

18     public TextBox AddTextBox(TxtItem ti)

19     {

20         TextBox tb = new TextBox();

21         tb.ID = ti.ID;

22         tb.Text = ti.Value;

23         AddControl(tb, ti.EditWidth);

24         return tb;

25     }

26     public Label AddLabel(string title, int width)

27     {

28         Label lb = new Label();

29         lb.Text = title;

30         AddControl(lb, width);

31         return lb;

32     }

33     public Button AddButton(TxtItem ti)

34     {

35         Button btn = new Button();补充:Web开发 , ASP.Net ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,