WebForm  还是  WinForm  ??

解决方案 »

  1.   

    public class CTemplateColumn:ITemplate
    {
    private string colname;
    private string cmd;
    public CTemplateColumn(string cname,string command)
    {
    colname=cname;
    cmd=command;
    }
    //为了使用接口必须实现的方法
    public void InstantiateIn(Control container)       
    {
    Button BT=new Button();
    BT.DataBinding+=new EventHandler(this.OnDataBinding);
    BT.CommandName=cmd;
    container.Controls.Add(BT);
    }
    public void OnDataBinding(object sender, EventArgs e)
    {
    Button BT=(Button)sender;
    DataGridItem container=(DataGridItem) BT.NamingContainer;
    BT.Text=((DataRowView) container.DataItem)[colname].ToString();
    }
    } private void AddDataGrid()//动态添加列(普通,模板列,给模板列添加事件)
    {
    BoundColumn ID=new BoundColumn();
    BoundColumn XMMC=new BoundColumn();
    BoundColumn BKC=new BoundColumn();
    BoundColumn A=new BoundColumn(); ID.HeaderText="1";
    ID.DataField="ID"; XMMC.HeaderText="2";
    XMMC.DataField="XMMC"; BKC.HeaderText="3";
    BKC.DataField="BKC"; A.HeaderText="4";
    A.DataField="A"; DataGrid1.Columns.AddAt(0,ID);
    DataGrid1.Columns.AddAt(1,XMMC);
    DataGrid1.Columns.AddAt(2,BKC);
    DataGrid1.Columns.AddAt(3,A);
    TemplateColumn tm=new TemplateColumn();
    tm.ItemTemplate=new CTemplateColumn("XMMC","Yes");
    DataGrid1.Columns.AddAt(4,tm); DataGrid1.DataSource=CreateDataSource();
    DataGrid1.DataBind();
    /*if(CreateDS().Tables["XMGL_XMXX"].Rows.Count>0)
    {
    for(int i=0;i<DataGrid1.Items.Count;++i)
    {
    DataGrid1.Items[i].Cells[0].Text=System.Convert.ToString(i+1);
    }
    }*/
    }
      

  2.   

    Fire_King(老龙明) :
            谢谢夸奖了!
      

  3.   

    谢谢了,不过我做的是WinForm,也可以?
      

  4.   

    也就是说在windows窗体上实现类似于web窗体的按钮列,每行一个按钮,对应一行记录。我想应该可以的吧。