日期:2014-05-18  浏览次数:20366 次

在datagrid中的编辑列表项时,如何点击一列编辑按钮使一页面上的表项上的所有列都成为可编辑状态(变成TEXTBOX状态)。如果调用函数?
在datagrid中的编辑列表项时,如何点击一列编辑按钮使一页面上的表项上的所有列都成为可编辑状态(变成TEXTBOX状态)。如果调用函数?

 protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
  {
  this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
  connb();
  }
  protected void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e)
  {


  
  DataGrid1.EditItemIndex = e.Item.ItemIndex;//如果让一页的所有表项(假如是一页有8行数据)每一行都处于正在编辑状态(变成TEXTBOX状态)??????????
   
   

  connb();
  
  }
  protected void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e)
  {
  Label1.Visible = false; //如何让让一页的所有表项(假如是一页有8行数据)一起更新(将TEXTBOX状态的内容更新)???????????
   
  string em = (this.DataGrid1.DataKeys[e.Item.ItemIndex]).ToString();
  int code1 = Convert.ToInt32(((TextBox)e.Item.Cells[1].Controls[0]).Text);
  if (code1 > 999 & code1 < 99999)
  {
  SqlConnection w = this.connb1();
  string str = string.Format("update wordcode set code='{0}' where word='{1}'", code1, em);
  SqlCommand cnn = new SqlCommand(str, w);
  cnn.ExecuteNonQuery();
  }
  else
  {
  Label1.Visible = true;

  Label1.Text = "你输入的四角码为:" + code1 + "是错误的,请重新输入(1000~99999)。";
  }
   

   


  }


  protected void DataGrid1_CancelCommand(object source, DataGridCommandEventArgs e)
  {
  this.DataGrid1.EditItemIndex = -1;
  connb();

  }

------解决方案--------------------
http://blog.csdn.net/net_lover/archive/2006/11/08/1374505.aspx
------解决方案--------------------
GridView控件默认只能修改一行记录。可实际使用中,有些情况需要批量编辑,你让用户去一行一行的点击编辑按钮,明显不能让用户接受。本人找到一个变通方法,在界面上放置2个div,里面各放一个GridView,绑定相同的数据源,其中一个div的display设为none,第二个 gridview字段全部转换为模板列,不设置编辑列,ItemTemplate里的Label全部改为TextBox或者可编辑的其他控件,双向绑定字段。这样用户点击“全部编辑”的时候第一个div不可见,第二个div可见,由于第二个gridview的ItemTemplate是可编辑控件,用户可直接修改,最后点击保存,只要执行循环执行GridView2.UpdateRow(i, false);即可保存,然后第一个div可见,第一个gridview1重新DataBind()即可切换到只读状态。
------解决方案--------------------
for(int i=0;i< DataGrid1.items.count;i++)
{
DataGrid1.EditItemIndex = i;
}

就是说把DataGrid1里所有行都设都编辑行就可以了