gridview 动态添加模版列

public class GridViewTemplate : ITemplate  
   
     {  
         public delegate void EventHandler(object sender, EventArgs e);  
         public event EventHandler eh;  
   
         private DataControlRowType templateType;  
   
         private string columnName;  
         private string controlID;
         private string columntext;
         private string btnurl;
   
    
   
         public GridViewTemplate(DataControlRowType type, string colname)  
   
         {  
   
             templateType = type;  
   
             columnName = colname;  
   
         }  
         public GridViewTemplate(DataControlRowType type,string controlID, string colname)  
         {  
             templateType = type;  
             this.controlID = controlID;  
             columnName = colname;  
         }
         public GridViewTemplate(DataControlRowType type, string controlID, string colname,string Conlumntext,string _btnurl)
         {
             templateType = type;
             this.controlID = controlID;
             columnName = colname;
             columntext = Conlumntext;
             btnurl = _btnurl;
         }
    
   
    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:              
                LinkButton lbtn = new LinkButton();  
                lbtn.ID = this.controlID;
                if (eh != null)
                {
                    lbtn.Click += new System.EventHandler(eh);
                }  
                lbtn.DataBinding+=new System.EventHandler(lbtn_DataBinding);
                lbtn.PostBackUrl = btnurl;
                container.Controls.Add(lbtn);  
                  
                break;  
            default:  
                break;  
        }  
    }  
     void lbtn_DataBinding(object sender, EventArgs e)  
     {  
         LinkButton lbtn = sender as LinkButton;  
         if (lbtn != null)  
         {  
             GridViewRow container = lbtn.NamingContainer as GridViewRow;  
             if (container != null)  
             {
                 object dataValue = DataBinder.Eval(container.DataItem, columnName);
                 if (dataValue != DBNull.Value)
                 {
                     //lbtn.Attributes.Add("onclick","");
                     lbtn.Text = columntext;
                    
                     lbtn.CommandName = columntext;
                     lbtn.CommandArgument = dataValue.ToString();
                 }  
             }  
         }  
     }  
 
   } 

 

DataTable dtkey = pb.GetColumnlist(" iskey='是' and pageid='" + pageid + "' ").Tables[0];
                if (dtkey.Rows.Count > 0)
                {
                    strkey = dtkey.Rows[0]["columnField"].ToString();
                }

                TemplateField customField = new TemplateField();

                customField.ShowHeader = true;
                customField.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "修改");
                GridViewTemplate gvt = new GridViewTemplate(DataControlRowType.DataRow, "lbtn", strkey, "修改","pagelist.aspx");

                LinkButton lbtn = new LinkButton();
                gvt.eh += new GridViewTemplate.EventHandler(lbtn_Click);

                customField.ItemTemplate = gvt;
                TemplateField tf = new TemplateField();
                tf.ShowHeader = true;
                tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "删除");
                GridViewTemplate gvt2 = new GridViewTemplate(DataControlRowType.DataRow, "lbtn2", strkey, "删除","pageadd.aspx");
                tf.ItemTemplate = gvt2;
                this.gv1.Columns.Add(customField);
                this.gv1.Columns.Add(tf);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值