我有一个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;
}
我已经尝试过了,但是没有任何反应我没有得到确认框,代码只是通过并运行重定向。谢谢
答案 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);
方法现在可以按预期工作。