【问题标题】:asp.net button click client and server side codeasp.net 按钮单击客户端和服务器端代码
【发布时间】:2013-09-17 10:58:05
【问题描述】:

我有一个名为“Delete”的asp:button,我想做的是有一个带有“是”和“否”选项的 JavaScript 确认弹出窗口。如果“是”,则从 SQL 数据库中删除一条记录,否则,如果“否”,则什么都不会发生。

<asp:Button runat="server" ID="btnDelete" Text="Delete" 
  OnClientClick="if(confirm('Delete?'))alert('You chose yes!');else alert('You chose no!')" 
  OnClick="btnDelete_Click" />

btnDelete_Click 包含 SQL 删除逻辑。

我遇到的问题是OnClick 方法总是被执行。无论您从 JavaScript 弹出窗口中选择“是”还是“否”,记录都会被删除。它似乎总是会导致回发。

我能否以某种方式将“是”或“否”结果放入我的代码中,这样我实际上可以为删除逻辑执行一个简单的“if”语句?

【问题讨论】:

    标签: c# javascript asp.net button


    【解决方案1】:

    试试这个,在你的 javascript 上做这个

    var result = Confirm("Are you sure . . . . ");
    if(result)
       return true;
    else
       return false;
    

    如果它是真的,它应该回发你的代码,否则它会取消你的点击。

    【讨论】:

    • 是的,可以。谢谢。
    【解决方案2】:

    应该是:

    <asp:Button runat="server" ID="btnDeleteSite" Text="Delete" OnClientClick="return confirm('Format Delete?');" OnClick="btnDeleteSite_Click" />
    

    【讨论】:

      【解决方案3】:

      理想情况下,您应该将 JS 事件处理程序放在脚本标记中,并从按钮定义中的 OnClientClick 事件中调用它们。像这样:

      <script type="text/javascript">
          function ConfirmDelete() {
                  return confirm("Delete?");
              }
      </script>
      

      然后在按钮的 OnClientClick 事件中,执行以下操作:

      OnClientClick="return ConfirmDelete()"
      

      这使您的标记保持干净和可读,并且如果用户选择“否”,也可以防止回发。

      【讨论】:

        【解决方案4】:

        试试这个

        <asp:Button runat="server" ID="btnDelete" Text="Delete" OnClientClick="if(confirm('Delete?')){return true;}else {return false;} OnClick="btnDelete_Click" />
        

        当你使用 OnClientClick 事件和 JS 确认对话框时,你需要返回 true 或 false。如果它将返回 True,则 OnClick(Server 端) 事件将触发,否则不会。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多