如何在里面编辑gridview行?

时间:2013-07-09 09:31:55

标签: asp.net

我想要编辑gridview的行。为此,我添加了showsitbutton = true。我已经从cs文件中绑定了gridview。我是否需要使用3个函数?(对于编辑我在cs文件中添加了3个函数我已经从互联网上获得了帮助。但有些观点并不理解。

- 在aspx中

<asp:GridView datakeyname="Id" Id ="Gridview1" onRowEditing="GridView1_RowEditing" RowCancelingEdit=" GridView1_RowCancelingEdit" onRowUpdating ="GridView1_RowUpdating" >
<column>
// hyperlink ,dataTextfield is id
// some checkboxfield.(start from column 6)
</column>

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        //code for Binding grid
    }

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
       // for fetching value of id and checkboxfield(column 6)
  string Id= GridView1.DataKeys[e.RowIndex].Values["Id"].ToString());
   bool ischeck = (Gridview1.Rows[e.RowIndex].Cells[5].Controls[0] as checkBox).Checked;
        // code for updating grid
          GridView1.EditIndex = -1;
        //Now bind the gridview gain here
    }

protected void GridView1_RowCancelingEdit(object sender, GridViewUpdateEventArgs e)
    {
        GridView1.EditIndex = -1;
        //Now bind the gridview gain here
    }

我是否朝着正确的方向前进?使用datakey。我使用得当吗?为什么GridView1.EditIndex = -1更新和取消event.Column 6是checkboxfield.why .Controls [0]用于访问那个复选框。

1 个答案:

答案 0 :(得分:0)

  1. 如果您使用ObjectDataSource(或SqlDataSourceOleDbDataSource)进行数据绑定并使用UpdateCommandDeleteCommand,{{1}然后,您不需要为编辑/更新操作显式编写这三个函数。在代码隐藏中编写绑定代码或者想要在任何操作之前/之后执行其他工作时,您需要这些功能。

  2. 单击GridView上的“编辑”时会触发
  3. InsertCommand。在这里,您可以通过编写RowEditing来指定要在 editmode 中打开的行。您还可以在此处编写代码,以便在将用户放入 editmode 之前执行所需的任何工作。例如,您可以检查业务规则条件,并在不符合规则时取消操作。

  4. 当您在GridView上单击“保存”/“更新”时,会激活
  5. GridView1.EditIndex = e.NewEditIndex。这是在实际数据库操作之前触发的。如果数据源上有RowUpdating,那么您不需要编写数据库保存例程,否则请在此处写入。

  6. UpdateCommand标识标识绑定数据的“ key ”。在数据绑定到GridView时指定DataKeys。例如,数据库表的主键。这一行:DataKeys您在这里获取当前行的“ Id ”键(您可以拥有多个键)的值。

  7. 更新取消中的
  8. string Id= GridView1.DataKeys[e.RowIndex].Values["Id"].ToString());指定GridView不应再位于 editmode 中。如果此值为> = 0,则将GridView放入该行的 editmode (索引从0开始)。所以我们将它设置为-1,表示它不应该在 editmode 中。

  9. GridView1.EditIndex = -1用于选择该单元格中的第一个控件(您可能有多个控件)。或者,您也可以使用Controls[0]