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

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

 

此篇,是 前篇 应用篇(一)的延续,也是进阶版。在本篇中使用一个aspx 档案来同时实现,资料清单的显示以及资料编辑同在一起的示范。

当然,资料字段少的时候,可以直接 使用GridView 就直接实现,但在字段多的时候,或是编辑画面要求复杂时,这时在使用GridView 就感觉很麻烦了。

在本篇中 会使用 几个程式相关档案,分别是,

test5.aspx 主页面

MyBase5.aspx.cs 基底程式

Customer 类,Value Object

test5.xml 用来储存示范资料

详细介绍如下:

 

在MyBase5 中有各重点就是,一开始控件,要在Init 时就要全部产生出来,当然这是各偷懒的行为,读者 有兴趣,可以 再去尝试判断页面状态,来决定来些要产生 哪些不产生。

在这个程式中还有各要注意的地方,就是sourceTag(编辑页面) 跟GridView1(主页面) 的显示控制,一开始 需先将sourceTag 隐藏,因为本页面,user 无任何操作一进来要看到的页面是GridView1,sourceTag 是进来页面後 视操作的结果来决定是否显示的。

 

MyBase5.aspx.cs

  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 MyBase5 : System.Web.UI.Page{

 11

 12     protected GridView GridView1;

 13     protected HtmlGenericControl sourceTag;

 14     protected Button btnSubmit;

 15 www.zzzyk.com

 16     protected override void OnInit(EventArgs e)

 17     {

 18         base.OnInit(e);

 19         HtmlGenericControl msgTag = new HtmlGenericControl();

 20         msgTag.ID = "divMsg";

 21         sourceTag.Controls.Add(msgTag);

 22

 23         Button btnSave = new Button();

 24         btnSave.Click += new EventHandler(btnSave_Click);

 25         btnSave.Text = "储存";

 26         sourceTag.Controls.Add(btnSave);

 27

 28         Button btnMain = new Button();

 29         btnMain.Click += new EventHandler(btnMain_Click);

 30         btnMain.Text = "回主页面";

 31         sourceTag.Controls.Add(btnMain);

 32

 33         Table myTable = new Table();

 34         sourceTag.Controls.Add(myTable);

 35         dealTableData(myTable);

 36         sourceTag.Visible = false;

 37

 38         GridView1.RowEditing += new GridViewEditEventHandler(GridView1_RowEditing);

 39     }

 40     protected override void OnLoad(EventArgs e)

 41     {

 42         base.OnLoad(e);

 43

 44         if (!IsPostBack)

 45         {

 46             DataBind();

 47         }

 48     }

 49

 50     public virtual void DataBind()

 51     {

 52

 53     }

 54     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

 55     {

 56         try

 57         {

 58             Object myObj = GetGridData(e.NewEditIndex);

 59             if (myObj != null)

 60             {

 61                 ShowEditData(myObj);

 62                 Customer myCus = (Customer)myObj;

 63                 sourceTag.Visible = true;

 64                 GridView1.Visible = false;

 65             }

 66         }

 67         catch (Exception ex)

 68         {

 69             ShowMessage(ex.ToString());

 70         }

 71     }

 72     //取得GridView 特定列的资料

 73     public virtual Object GetGridData(int EditIndex)

 74     {

 75         return null;

 76     }

 77     //生成编辑画面的控件

 78     public virtual void dealTableData(Table myTable)

 79     {

 80

 81     }

 82     //设定编辑画面控件的预设值

 83     public virtual void ShowEditData(Object fVObj)

 84     {

 85

 86     }

 87     //储存 按键触发后的处里

 88     public virtual void btnSave_Click(Object sender, EventArgs e)

 89     {

 90     }

 91     //回主页面 按键触发后的处里

 92     public virtual void btnMain_Click(Object sender, EventArgs e)

 93     {

 94         sourceTag.Visible = false;

 95         GridView1.Visible = true;

 96         GridView1.EditIndex = -1;

 97         DataBind();

 98     }

 99     public virtual void ShowMessage(string msg)

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,