1

大家好,我已经创建了一个用户控件,在每个按钮单击上我将有大约 3 个按钮,我将根据按钮单击动态分配一个网格,其中的值很少。一切正常,但是当我从 gridview 中删除一行并再次执行按钮单击事件时,它不会触发按钮单击事件

我的代码在User control

DataTable dt= new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
  if (ViewState["CurrentTable"] == null)
  {
     dt.Columns.Add("Id", typeof(string));
     dt.Columns.Add("xx", typeof(string));
     dt.Columns.Add("xx", typeof(string));
     dt.Columns.Add("xx", typeof(string));
     dt.Columns.Add("xx", typeof(string));
  }
   }

protected void btn1_Click(object sender, EventArgs e)
{
  if (ViewState["CurrentTable"] == null)
  {
  }
  else
  {
      addrow("Some", txt1.Text);
  } 
}

protected void grd_Deleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
{
       int iIndex;
        iIndex = grd.FocusedRowIndex;
        dt.Rows[iIndex].Delete();
        grd.DataSource = dt;
        grd.DataBind();
}

删除一行后如何执行按钮单击操作以再次触发

4

2 回答 2

0

我认为问题出在grd_Deleting

我看不到你在哪里设置新值(删除后)view-state

protected void grd_Deleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
{
   int iIndex;
    iIndex = grd.FocusedRowIndex;
    dt.Rows[iIndex].Delete();
    //set dt to view state
    ViewState["CurrentTable"] =dt;
    grd.DataSource = dt;
    grd.DataBind();
}
于 2013-04-01T05:42:48.227 回答
0

删除后使用此代码

ViewState["CurrentTable"] = dt // OR Null base on your requirement
btn1_Click(null, null);

还有一件事 当最终用户单击 Delete 命令或调用 DeleteRow 方法时,会发生 RowDeleting 事件。要取消删除操作,请将事件参数的 Cancel 属性设置为 true。

e.cancel=true; //in finally

参考

于 2013-04-01T05:46:34.673 回答