【问题标题】:code behind confirm with custom validation使用自定义验证确认后面的代码
【发布时间】:2014-04-23 12:33:11
【问题描述】:

我知道我们可以通过使用“onClientClick”来实现这一点,但我想在确认框之前先检查验证。

javascript

function showConfirm() {
         var result = window.confirm('Are you sure?');
         if (result == true)
             alert("ok");            
}

html

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

C#

protected void Button1_Click(object sender, EventArgs e)
 {
    if(checkValidation() == true)
    {
        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scr",  "javascript:showConfirm();", true);

       //if(result == true)   //how to get the result value?
       //{
            ////run some code
            //insert data into sql
       //}
    }
 }

无论如何我可以在后面的代码中获得确认结果吗?如果没有 if-else-statement,数据将在用户选择他们的决定之前插入到 sql 中。

【问题讨论】:

  • 您可以使用 ajax 进行验证并显示警报(我认为这不是最佳做法)。您可以使用 javascript 进行所有验证,如果您需要从服务器(db 字段)获取它,那么您可以使用 ajax。
  • 是的,我确实需要在插入之前从 sql 中获取数据。你的意思是什么样的ajax功能?更新面板?
  • 我个人避免使用更新面板。您可以通过 jquery 或 pagemethods 使用 ajax。
  • tq 的建议,但我不敢相信我找到了一个非常简单的解决方案。请看我的回答:)
  • 回发是无缘无故的。更好地使用客户端代码进行验证。

标签: c# javascript asp.net confirm


【解决方案1】:
  1. 我创建了一个带有 display:none 的按钮

    .hideButton{ 显示:无; }

  2. 在后面创建代码

    protected void btnConfirm_Click(object sender, EventArgs e) { Response.Redirect("page2.aspx"); }

  3. 如果用户在确认框中单击是,则触发 btnConfirm 点击

    $('#ContentPlaceHolder1_btnConfirm').trigger('click');

【讨论】:

    【解决方案2】:

    如果您在 Web 表单中进行自定义验证,您可以启用 EnableClientScript="true" 并像这样在 ClientValidationFunction="JSValidateFunctionName" 中编写 JS 验证函数名称,您甚至可以在进入服务器端之前在客户端进行验证。

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 2017-12-09
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      相关资源
      最近更新 更多