晕,原来是问题在这里        if(!Page.IsPostBack )
{
this.createDv ();
}去掉  if(!Page.IsPostBack )就可以了

解决方案 »

  1.   

    你点按钮之后dt就没有了,因为你是写在!PostBack中的~~你Datagrid中的数据是通过视图状态保存下来的,但是dt不会被保存
      

  2.   

    you need to save the datatable somewhereprivate void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!Page.IsPostBack )
    {
    this.createDv ();
                                         Session["Data"] = dt;
    }
                               else
                                  dt = (DataTable)Session["Data"];

    }
      

  3.   

    button_click之后回发,这时候没有数据源了;)
      

  4.   

    我想把添加进去的行设为编辑行 DataGrid1.EditItemIndex该怎样设置?
      

  5.   

    不赞成,这样的思路页面效率太低.用javascript吧.
      

  6.   

    coffeewar,
    你可以参考这个做,我以前是用你目前这个思路来实现这个功能,后改为用javascript.
    http://dev.csdn.net/article/28/28446.shtm
      

  7.   

    to:wu896222
    我现在是用你介绍的思路做的,差不多了,可为什么一刷新就没了呢
      

  8.   

    coffeewar,
    用javascript在客户端增加的Datagrid行,不会记录在Datagrid的viewstate中,故页面刷新的时候服务器端得不到值,所以就没了.
    我的解决的办法是不要让页面刷新,将Datagrid的每一行值写到一个textbox中.