TemplateColumn TemColumn=new TemplateColumn(); 
TemColumn.ItemTemplate = new ColumnTemplate ();
TemColumn.HeaderText="学院"; 
DG_PNResult.Columns.Add(TemColumn); public class ColumnTemplate : ITemplate
{
   public void InstantiateIn(Control container)
   {
CheckBox cb = new CheckBox ();
cb.ID="CHK_Del"; Label lab=new Label();
lab.Text="";
container.Controls.Add(lab);
   }
}控件已经生成 怎么把记录的ID绑定上 然后点选CheckBox 实现删除功能

解决方案 »

  1.   

    public class ColumnTemplate : ITemplate
    {
       private string strControlType,strControlID,strColumnName;
       
    public ColumnTemplate (string ControlType,string ControlID,string ColumnName)
          {
                
             this.strControlType=ControlType;
    this.strControlID=ControlID;
    this.strColumnName=ColumnName;
           }
        public void InstantiateIn(Control container)
        {
            switch(strControlType.ToLower())
             {
       case "checkbox":
                         CheckBox checkbox=new CheckBox();
                         checkbox.ID=strControlID;
                         checkbox.DataBinding+=new System.EventHandler(OnDataBinding);
                         container.Controls.Add(checkbox);
                         break;   case "label":
                         Label label=new Label();
                         label.ID=strControlID;
                         label.DataBinding+=new System.EventHandler(OnDataBinding);
                         container.Controls.Add(label);
                         break;
    default:
         break;
    }
        }
    private void OnDataBinding(object sender,EventArgs e)
            {
                DataGridItem container;
                switch(strControlType)
                {
                    case "label":
                        Label label;
                        label=(Label)sender;
                        //控件发送绑定请求 
                        container=(DataGridItem) label.NamingContainer;
        label.Text=(DataBinder.Eval(container.DataItem,strColumnName)).ToString();
                        break;
    case "checkbox":
                        CheckBox checkbox;
                        checkbox=(CheckBox)sender;
                        //控件发送绑定请求 
                        container=(DataGridItem) checkbox.NamingContainer;
                        checkbox.Checked=(bool)((DataRowView)(container.DataItem))[strColumnName];
                        break;
    default:
        break;
       }
    }
    }