我有一个gridview,我希望当我在gridview中单击“编辑”按钮,然后编辑在gridview之外的控件中插入的行值,然后删除行时。我可以在“ edit”事件中调用“ delete”事件方法,因为我想先在控件中检索值,然后删除行。
这是我的aspx.cs代码。都可以在此处删除和编辑事件代码:
protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DataTable t = (DataTable)Session["MyDataTable"];
t.Rows.RemoveAt(e.RowIndex);
GridView2.DataSource = t;
GridView2.DataBind();
}
public void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{
DataTable t = (DataTable)Session["MyDataTable"];
TextBox1.Text=GridView2.Rows[e.NewEditIndex].Cells[1].Text.ToString();
DropDownList1.Text = GridView2.Rows[e.NewEditIndex].Cells[2].Text.ToString();
GridView2.EditIndex = -1;
GridView2.DataSource = t;
GridView2.DataBind();
//CAN I CALL GRIDVIEW_ROW_DELETING method here? I try but problem is arguments etc
}
正如Emanuaele所说的,有更好的方法来执行此操作,但是如果您想使代码保持在现有状态附近,请将删除代码移到单独的方法中
protected void DeletingRow(int rowIndex)
{
DataTable t = (DataTable)Session["MyDataTable"];
t.Rows.RemoveAt(rowIndex);
GridView2.DataSource = t;
GridView2.DataBind();
}
然后GridView2_RowDeleting将更改为
protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DeletingRow(e.RowIndex);
}
并且GridView2_RowEditing将更改为
public void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{
DaTable t = (DataTable)Session["MyDataTable"];
TextBox1.Text=GridView2.Rows[e.NewEditIndex].Cells[1].Text.ToString();
DropDownList1.Text = GridView2.Rows[e.NewEditIndex].Cells[2].Text.ToString();
GridView2.EditIndex = -1;
GridView2.DataSource = t;
GridView2.DataBind();
//CAN I CALL HERE GRIDVIEW_ROW_DELETING METHOD,I try but problem is arguemnts etc
DeletingRow(e.NewEditIndex);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句