从无按钮后面的C#代码运行Java脚本

时间:2019-03-26 17:58:53

标签: javascript c#

我有一个ASP Web应用程序,需要从C#if语句中调用JavaScript确认函数。我在JavaScript方面非常弱,所以要谦虚。这是我在ASPX页面上放置的JavaScript:

function Confirm() 
{
    var result = window.confirm('Are you sure?');
    if (result == true)
       return true;
    else
       return false;
}

这是我要调用此脚本时的C#代码。我要完成的工作是在我的aspx页面上检查2个值,第一个是CaseID,第二个是复选框的值。如果代码运行了,我想显示确认框,然后单击“是”,然后重定向到另一页。

else if (rec.Count != 0 && rec.Select(s=> s.IsClosed).First().Value == true && chkOverRide.Checked == false)
{
     //if the case is closed and not overridded redirects to edit page
     ScriptManager.RegisterStartupScript(
           this,
           GetType(),
           "key",
           "confirm('Are you sure you want to continue?');",
           true);
      Response.Redirect("~\\Forms\\EditRecord.aspx?CaseId="+ rec.Select(s => s.CaseNum).First(), false);
      return false;
}

我已经尝试过了,但是没有任何反应我没有得到确认框,代码只是通过并运行重定向。谢谢

1 个答案:

答案 0 :(得分:0)

在解决此问题的过程中,我发现某些问题导致了我的失败。第一个问题是我使用的是C#重定向,该重定向导致回发,因此我的JavaScript代码从不显示JavaScript框。我不得不重新考虑该过程,最终使用JavaScript进行重定向。这是新的JavaScript的外观。

function Confirm(caseId) {
            var result = window.confirm('This case already exists and completed. Please reopen it for further updates?');
            if (result == true)
                window.location = '\EditRecord.aspx?CaseNum='+caseId;
            else
                return false;
        }

C#方法现在看起来像这样:

else if (rec.Count != 0 && rec.Select(s=> s.IsClosed).First().Value == true && chkOverRide.Checked == false)
            {//if the case is closed and not overridded redirects to edit page
                ScriptManager.RegisterStartupScript(this,GetType(),"key", "Confirm('" + CaseNumber + "');", true);

方法现在可以按预期工作。