c#背后的JavaScript代码

时间:2015-01-27 09:40:58

标签: javascript c#

我的cs文件中有以下代码。

private bool ValidateFirst()
{
    StringBuilder sb2 = new StringBuilder();

    sb2.Append(@"<script language='javascript'> var bContinue = true;");
    sb2.Append(@"bContinue = confirm(");
    sb2.Append("'some text here'");
    sb2.Append(@");");

    sb2.Append("if (bContinue) {");
    sb2.Append(this.Page.ClientScript.GetPostBackEventReference(this, "OKFinal"));
    sb2.Append("}</script>");

    this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "ConfirmDialog", sb2.ToString());

    return false;
}

所以我想要的是在页面上显示确认弹出窗口。当我在JSFiddle http://jsfiddle.net/2rbcsvh6/上测试sb2.ToString()时,protected void screenController_ActionCommand(object sender, Web.Controls.CancelCommandEventArgs e) { if (e.CommandName == ScreenController.OkCommand) { // this is the method that contains the script if (ValidateFirst) { this.Save(); } } } 正在工作(_doPostBack事件不起作用),但在我的应用程序中,它不会显示。代码位于屏幕控制器动作命令中。

{{1}}

1 个答案:

答案 0 :(得分:0)

问题是当你嵌入JS时,页面已经被加载和渲染。您需要在页面加载之前运行代码,即Page_Load,或者将JS包装在一个函数中,然后可以从客户端调用它。