请教各位,我用datagrid是在后台动态生成column,然后绑定数据的,
if(!IsPostBack)
{
this.DataGrid1.Columns.Add(CreateBoundColumn("SpName","姓名"));
this.DataGrid1.Columns.Add(this.CreateBoundColumn("SpID","内部ID"));
this.DataGrid1.Columns.Add(this.CreateBoundColumn("SpType","类型"));
this.DataGrid1.Columns.Add(this.CreateBoundColumn("SpDescription","描述"));
this.DataGrid1.Columns.Add(this.CreateButtonColumn("选择"));
DataSet ds = new DataSet();
new SocialNet.DB.SpDAl().selectAll(out ds);
this.DataGrid1.DataSource = ds;
this.DataGrid1.DataBind();
}
事件也注册了
private void InitializeComponent()
{    
this.DataGrid1.ItemCommand += new DataGridCommandEventHandle(this.DataGrid1_ItemCommand);
this.DataGrid1.PageIndexChanged += new DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
但是事件无法触发,我在前台页面加入了OnItemCommand="DataGrid1_ItemCommand"也没什么效果
而且不知哪里的改动让绑定的过程执行了两次,也就是一行包括2段重复的内容。
请各位帮忙看看哪里有问题

解决方案 »

  1.   

    你只是动态的加列!你并没有把它加到行中形成一条记录
    你把dataset放到一张表中
    然后根据这张表进行绑定
      

  2.   

    DataTable table = ds.Tables[0];
    this.DataGrid1.DataSource = table.DefaultView;
    this.DataGrid1.DataBind();
    结果完全没变化
      

  3.   

    this.DataGrid1.DataSource = ds.Tables[0]。DefaultView;
      

  4.   

    将列添加到行中,再将行添加到表中,最好datagrid要和表绑定