我在后边动态创建Datagrid 以适应对不同表的查询结果 但现在面临一个问题就是 动态生成的DG里PageindexChanged不起作用了 
this.dg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dg_PageIndexChanged);
加上去具体实现函数怎么写呢?请教了

解决方案 »

  1.   

    刚开始研究动态生成datagrid问题 顶
    请问根据选择要显示的结果项 怎么动态生成datagrid 并绑定阿
      

  2.   

    我是查询不同表的内容  表结构不一样 所以要动态的生成DG请问根据选择要显示的结果项 怎么动态生成datagrid 并绑定阿
    根据查询条件动态生成SQL语句,并执行,生成DS后
    我是自己写的函数来实现的,但网上很多是用模板列来实现,我没觉得有什么不同,函数如下,仅供参考。
    private void createDatagrid()
    {
    foreach(System.Data.DataColumn dc in this.ds.Tables[this.Request["PT"].ToString() + "表"].Columns)
    {
    if(dc.ColumnName.ToString().Equals("文件名"))
    {
    System.Web.UI.WebControls.HyperLinkColumn linkC = new HyperLinkColumn(); linkC.HeaderText=""; linkC.Text = "查看文件(二进制形式)";

    linkC.DataNavigateUrlField = dc.ColumnName; linkC.DataNavigateUrlFormatString = "../viewer/_fileContext.aspx?filename={0}"; linkC.ItemStyle.Wrap = false; this.dg.Columns.Add(linkC);
    }
    else
    {
    System.Web.UI.WebControls.BoundColumn boundC = new BoundColumn(); boundC.DataField = dc.ColumnName;
    boundC.HeaderText = dc.Caption; this.dg.Columns.Add(boundC);
    }
    } System.Web.UI.WebControls.ButtonColumn btnC = new ButtonColumn(); btnC.ButtonType = System.Web.UI.WebControls.ButtonColumnType.PushButton; btnC.CommandName = "viewfile"; btnC.HeaderText = ""; btnC.Text = "查看文件"; this.dg.Columns.Add(btnC);
    }
      

  3.   

    我现在的思路是不用Databind,自己去读取Dataset中的每行 然后加到DG中,不知道这样做可行不?有经验的过来指点一下
      

  4.   

    关键是动态创建的datagrid 里面的事件怎么办啊?
      

  5.   

    委托的东西看了点 但我已经写了this.dg.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dg_PageIndexChanged);为什么不行?