zoukankan      html  css  js  c++  java
  • GridView动态添加模板列

    首先,第一步,创建一个类MyTemplate.cs


    public class MyTemplate:ITemplate
    {
        private string strColumnName;
        private DataControlRowType dcrtColumnType;

        public MyTemplate()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }

        /// <summary>
        /// 动态添加模版列
        /// </summary>
        /// <param name="strColumnName">列名</param>
        /// <param name="dcrtColumnType">列的类型</param>
        public MyTemplate(string strColumnName, DataControlRowType dcrtColumnType)
        {
            this.strColumnName = strColumnName;
            this.dcrtColumnType = dcrtColumnType;
        } 

        public void InstantiateIn(Control ctlContainer)
        {
            switch (dcrtColumnType)
            {
                case DataControlRowType.Header: //列标题
                    Literal ltr = new Literal();
                    ltr.Text = strColumnName;
                    ctlContainer.Controls.Add(ltr);
                    break;
                case DataControlRowType.DataRow: //模版列内容——加载CheckBox
                    CheckBox cb = new CheckBox();
                    cb.ID = "CheckBox1";
                    cb.Checked = false;
                    ctlContainer.Controls.Add(cb);
                    break;
            }
        }

    }

    第二步,在绑定GridView方法中,生成模版列


    /// <summary>
        /// 绑定生成GridView
        /// </summary>
        /// <param name="gdv">要绑定的GridView</param>
        /// <param name="dtblDataSource">GridView的数据源</param>
        /// <param name="strDataKey">GridView的DataKeyNames</param>public static void GridViewBind(GridView gdv, DataTable dtblDataSource, string strDataKey)
        {
            gdv.Columns.Clear();

            gdv.AutoGenerateColumns = false;
            gdv.DataSource = dtblDataSource;
            gdv.DataKeyNames = new string[] { strDataKey };

            TemplateField tfColumn = new TemplateField();
            tfColumn.ItemTemplate = new MyTemplate("", DataControlRowType.DataRow);
            gdv.Columns.Add(tfColumn);

           //………………

            gdv.DataBind();
        }

    这样模版列也可以动态生成啦!

  • 相关阅读:
    315. 计算右侧小于当前元素的个数
    55. 跳跃游戏
    <leetcode c++>72. 编辑距离
    "NTLDR is missing"和"NTLDR is compressed"的解决办法
    Windows Live Mail不能发送图片附件的2种解决方法
    【】使用word2010同步更新自己在不同网站的博客
    新浪博客测试
    【】引用 CSS行高line-height属性理解及应用
    "NTLDR is missing"和"NTLDR is compressed"的解决办法
    排序算法-冒泡排序(javascript)
  • 原文地址:https://www.cnblogs.com/chengpeng/p/2205578.html
Copyright © 2011-2022 走看看