GridView后台添加模板列

1、定义实现ITemplate接口的类

public class GridViewTemplate : ITemplate //定义实现接口ITemplate的类
        {
            private DataControlRowType templateType;
            private string columnName;
            DataTable dt;

            /// <summary>
            /// 绑定checkbox列专用
            /// </summary>
            /// <param name="type"></param>
            /// <param name="colname"></param>
            /// <param name="dt1"></param>

            public GridViewTemplate(DataControlRowType type, string colname,DataTable dt1) //构造函数
            {
                templateType = type;
                columnName = colname;
                dt = dt1;
            }

            public void InstantiateIn(System.Web.UI.Control container) //分别创建头行和下面行
            {
                switch (templateType)
                {
                    case DataControlRowType.Header: //头行
                        Literal lc = new Literal();
                        lc.Text = columnName;
                        container.Controls.Add(lc);
                        break;


                    case DataControlRowType.DataRow: //一般行
                        CheckBox cb = new CheckBox();
                        cb.ID = "CheckHide";
                       
                        cb.DataBinding += new EventHandler(ib_DataBinding);//绑定数据调用方法ib_DataBinding(object sender, EventArgs e)
                        container.Controls.Add(cb);
                        break;
                    default:
                        break;
                }
            }
            void ib_DataBinding(object sender, EventArgs e)
            {

                CheckBox  lbl = sender as CheckBox;

                GridViewRow gr = lbl.NamingContainer as GridViewRow;

                lbl.Checked = Convert.ToBoolean((DataBinder.Eval(gr.DataItem, "hide")));
             
                // lbl. = DataBinder.Eval(gr.DataItem, _innerContorlName).ToString(); 

            }
        } 

 

2、添加模板列

           TemplateField a = new TemplateField();
           ITemplate d = new GridViewTemplate(DataControlRowType.Header, "判定", dt);
           ITemplate ds= new GridViewTemplate(DataControlRowType.DataRow, "判定", dt);
           a.ItemTemplate = d;
           a.ItemTemplate = ds;
           GridViewv.Columns.Add(a);


综上:共两个步骤。同理EditTemplate也是这样定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值