GridView动态添加Templete项

GridView动态添加Templete项最近的碰到一个问题 就是 GridView 后台怎样动态添加 Templete 项 比方说 有个 BankCardChan aspx 页面 其中的 GridView 显示的要求是一些公用的项 比如 用户 ID 旧账号 等项 但又要根据传递的 stype 参数和用户的权限添加一些其他项 我是用模板类实现的 模板类代码如下 Code1namespa Web UI

最近的碰到一个问题,就是GridView后台怎样动态添加Templete项。比方说,有个
BankCardChangeManage.aspx页面,其中的GridView显示的要求是一些公用的项,比如“用户ID,旧账号”等项,但又要根据传递的stype参数和用户的权限添加一些其他项。我是用模板类实现的。
模板类代码如下:

GridView动态添加Templete项 GridView动态添加Templete项 Code
 1GridView动态添加Templete项namespace Nimeux.Web.UI
 2GridView动态添加Templete项GridView动态添加Templete项GridView动态添加Templete项{

 3GridView动态添加Templete项    public class NimeuxTemplete : ITemplate
 4GridView动态添加Templete项GridView动态添加Templete项    GridView动态添加Templete项{

 5GridView动态添加Templete项        private string _colname;
 6GridView动态添加Templete项
 7GridView动态添加Templete项GridView动态添加Templete项        ///// 


 8GridView动态添加Templete项        /// 构造函数
 9GridView动态添加Templete项        /// 


10GridView动态添加Templete项        ///  列的名字(对应数据库的字段)
11GridView动态添加Templete项        public NimeuxTemplete(string colname)
12GridView动态添加Templete项GridView动态添加Templete项        GridView动态添加Templete项{

13GridView动态添加Templete项            this._colname = colname;
14GridView动态添加Templete项        }

15GridView动态添加Templete项
16GridView动态添加Templete项GridView动态添加Templete项        ///// 


17GridView动态添加Templete项        /// 实现接口ITemplate的方法
18GridView动态添加Templete项        /// 


19GridView动态添加Templete项        /// 
20GridView动态添加Templete项        /// 

21GridView动态添加Templete项        /// 1、new一个LiteralControl
22GridView动态添加Templete项        /// 2、给LiteralControl加一个绑定事件
23GridView动态添加Templete项        /// 3、把该控件加到容器控件集合里
24GridView动态添加Templete项        /// 
25GridView动态添加Templete项        public void InstantiateIn(Control container)
26GridView动态添加Templete项GridView动态添加Templete项        GridView动态添加Templete项{

27GridView动态添加Templete项            LiteralControl l = new LiteralControl();
28GridView动态添加Templete项            l.DataBinding += new EventHandler(this.OnDataBinding);
29GridView动态添加Templete项            container.Controls.Add(l);
30GridView动态添加Templete项        }

31GridView动态添加Templete项
32GridView动态添加Templete项        private void OnDataBinding(object sender, EventArgs e)
33GridView动态添加Templete项GridView动态添加Templete项        GridView动态添加Templete项{

34GridView动态添加Templete项            LiteralControl l = (LiteralControl)sender;
35GridView动态添加Templete项
36GridView动态添加Templete项            // 得到l的容器(父亲)——GridViewRow
37GridView动态添加Templete项            GridViewRow container = (GridViewRow)l.NamingContainer;
38GridView动态添加Templete项            // 通过列名(对应数据库的字段)给l赋值
39GridView动态添加Templete项            l.Text = ((DataRowView)container.DataItem)[_colname].ToString();
40GridView动态添加Templete项        }

41GridView动态添加Templete项    }


42GridView动态添加Templete项}

然后,在页面中编写了一个私有方法如下:

GridView动态添加Templete项 GridView动态添加Templete项 Code
 1GridView动态添加Templete项GridView动态添加Templete项///// 


 2GridView动态添加Templete项        /// 根据不同参数显示不部内容
 3GridView动态添加Templete项        /// 


 4GridView动态添加Templete项        ///  标记参数
 5GridView动态添加Templete项        private void Show(int flag)
 6GridView动态添加Templete项GridView动态添加Templete项        GridView动态添加Templete项{

 7GridView动态添加Templete项            if (flag == 2)
 8GridView动态添加Templete项GridView动态添加Templete项            GridView动态添加Templete项{

 9GridView动态添加Templete项                TemplateField tf1 = new TemplateField();
10GridView动态添加Templete项                NimeuxTemplete nt1 = new NimeuxTemplete(OldCard);
11GridView动态添加Templete项                tf1.HeaderText = 旧卡号;
12GridView动态添加Templete项                tf1.ItemTemplate = nt1;
13GridView动态添加Templete项
14GridView动态添加Templete项                TemplateField tf2 = new TemplateField();
15GridView动态添加Templete项                NimeuxTemplete nt2 = new NimeuxTemplete(NewCard);
16GridView动态添加Templete项                tf2.HeaderText = 新卡号;
17GridView动态添加Templete项                tf2.ItemTemplate = nt2;
18GridView动态添加Templete项
19GridView动态添加Templete项                this.gvFSBT.Columns.Add(tf1);
20GridView动态添加Templete项                this.gvFSBT.Columns.Add(tf2);
21GridView动态添加Templete项            }

22GridView动态添加Templete项            else
23GridView动态添加Templete项GridView动态添加Templete项            GridView动态添加Templete项{

24GridView动态添加Templete项                TemplateField tf1 = new TemplateField();
25GridView动态添加Templete项                NimeuxTemplete nt1 = new NimeuxTemplete(NewCard);
26GridView动态添加Templete项                tf1.HeaderText = 卡号;
27GridView动态添加Templete项                tf1.ItemTemplate = nt1;
28GridView动态添加Templete项
29GridView动态添加Templete项                TemplateField tf2 = new TemplateField();
30GridView动态添加Templete项                NimeuxTemplete nt2 = new NimeuxTemplete(ChangeContent);
31GridView动态添加Templete项                tf2.HeaderText = 登记内容;
32GridView动态添加Templete项                tf2.ItemTemplate = nt2;
33GridView动态添加Templete项
34GridView动态添加Templete项                this.gvFSBT.Columns.Add(tf1);
35GridView动态添加Templete项                this.gvFSBT.Columns.Add(tf2);
36GridView动态添加Templete项            }

37GridView动态添加Templete项        }


这样根据flag传递的参数就可以显示不同的内容了。GridView通过模板动态添加项应用非常多,我这里只是根据一些要求做简单的应用罢了。为了使自己的博客充实一点,就写了下了。


转载于:https://www.cnblogs.com/Nimeux/archive/2008/06/16/1223321.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229413.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午4:46
下一篇 2026年3月16日 下午4:46


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号