【问题标题】:Button click event is not firing on the second click for the user control按钮单击事件未在用户控件的第二次单击时触发
【发布时间】:2013-04-01 05:20:44
【问题描述】:

大家好,我已经创建了一个用户控件,在每次单击按钮时我将有大约 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();
}

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

【问题讨论】:

  • 第二次调试并检查 ViewState["CurrentTable"] = dt (or) null。

标签: asp.net user-controls


【解决方案1】:

我认为问题出在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();
}

【讨论】:

  • 嗨 Shekhar,即使我在 grd.DataBind(); 之后分配 ViewState["CurrentTable"] = dt; 我也无法触发按钮
  • 你的代码有点难以理解。据我了解,您正在从ViewState 绑定gridview。因此,在删除该行后,您还应该更新视图状态。以便您在网格中获得正确的值。
  • 是的 shekhar 我现在纠正了
【解决方案2】:

删除后使用此代码

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

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

e.cancel=true; //in finally

reference

【讨论】:

  • 我可以知道你想在删除中做什么,你能简单解释一下吗
  • 我想删除一行并重新绑定完美运行的网格,但后来我无法执行任何操作,无论是按钮单击还是 gridview 中的删除选项
  • 你使用过 dt.AcceptChanges();删除后
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 2012-03-14
  • 2019-07-05
  • 1970-01-01
相关资源
最近更新 更多