1

我有一个按钮。我有一个 Session [“actionMode”]。这是我在 buttonClick 事件中所做的:

protected void Button1_Click(object sender, EventArgs e)
{

    if ((int)Session["actionMode"]==1)
    {
      //Do something
    }
    else if ((int)Session["actionMode"]==3)
    {
       //After confirmation delete a record
    }

}

如您所见,如果 Session["actionMode"] 的值等于 3,则删除一条记录。但在删除之前,我想提示用户确认操作。因此,如果 Session["actionMode"] 的值不等于 3,我不需要任何确认,因为它不会执行任何无法撤消的操作。有没有办法可以做到这一点?也许是Javascript?

4

2 回答 2

2

这个代码块...

{ 
    //After confirmation delete a record 
}

您正在执行服务器端代码,并且需要用户交互。

无论您做什么(客户端或服务器),都必须拆分它。服务器端替代方案。

{ 
    // Display a confirmation including server side controls.
}

protected void YesDeleteTheDamnRecord_Click(object sender, EventArgs e)
{
    // Delete it now.
}

这是一种与客户端交互的解决方案。

  • 在显示 Button1 之前检查“actionMode”方式的值。
  • 如果它等于“3”,则将客户端事件处理程序附加到 Button1.OnClientClick。
  • 显示确认(window.confirm 可能)
  • 如果用户单击“是”,则执行服务器端代码并​​删除记录。
于 2012-10-06T10:46:57.927 回答
1

我建议您使用以下方法进行删除.....

protected void Button1_Click(object sender, EventArgs e)
 {
      if ((int)Session["actionMode"]==1)
     {
       //Do something
     }
     else if ((int)Session["actionMode"]==3)
     {
        //Call Javascript Function which will call Ajax
     }
  } 

Javascript:

function callAjax()
{
   if(confirm(do you want to delete data?))
   {
     call Ajax Page
   }
   else
   {
     return;
   }
}

阿贾克斯页面:

  PageLoad
  {
    Get Session["actionMode"] Value
    Do your Delete here...
  }
于 2012-10-06T11:04:03.580 回答