如何用C#代码编写这个Javascript编码?

时间:2013-10-10 06:19:51

标签: c# javascript asp.net

<%--Confirmation Box--%>
<script type="text/javascript" language="javascript">
    function alertbox() {

      if (confirm("Are you sure?") == true) 
          {
              document.getElementById('<%= hdnYesNo.ClientID %>').value = "YES";
          }
          else 
          {
              document.getElementById('<%= hdnYesNo.ClientID %>').value = "NO";
          }

        }
    </script>

如何在C#asp代码中重写此代码?我想要一个带有是或否按钮的确认框。

5 个答案:

答案 0 :(得分:10)

protected void Page_Load(object sender, System.EventArgs e)
{    
    string csName = "PopupScript";
    Type csType = this.GetType();
    ClientScriptManager csm = Page.ClientScript;

    if (!csm.IsStartupScriptRegistered(csType, csName)) {
        StringBuilder sb = new StringBuilder();
        sb.Append("<script>");
        sb.Append("function alertbox() {");
        sb.Append("if (confirm('Are you sure?') == true) ");
        sb.Append("{");
            sb.Append("document.getElementById('" + hdnYesNo.ClientID + "').value = 'YES';");
        sb.Append("}");
        sb.Append("else");
        sb.Append("{");
        sb.Append("document.getElementById('" + hdnYesNo.ClientID + "').value = 'NO';");
        sb.Append("}");
        sb.Append("</script>");


        csm.RegisterStartupScript(csType, csName, sb.ToString());
    }
}

答案 1 :(得分:2)

你可以这样使用

Page.ClientScript.RegisterStartupScript(this.GetType(), "Confi", "if(confirm('Are you sure?') == true){  document.getElementById('txtValue').value ='YES';}else{document.getElementById('txtValue').value ='NO';}", true);

答案 2 :(得分:1)

你需要javascript,这在代码背后是不可能的。在将页面发送给用户之前,代码隐藏在服务器上运行,javascript在用户的计算机上运行。

如果你想在后面的代码中访问他们的答案(可能和直截了当),你可以使用ajax或者你可以回发。

如果你想在按下.Net asp:按钮控件时弹出这个弹出窗口,那么你可以在控件的“OnClientClick”属性中放置一个javascript函数。

编辑:如果您需要任何上述帮助,请告知我们并提供帮助:)。

EDIT2:由于下面的讨论,我想我应该澄清一下:你可以(显然)在服务器端构建javascript,然后再将它传递给客户端,但你给出的例子不是你应该这样做的情况(这可能是一个好主意的一个例子是一个脚本,它有从数据库中读取的变量或类似的东西,不需要在页面加载之间是动态的)。

答案 3 :(得分:1)

您可以使用ClientScriptManager类及其方法,例如RegisterClientScriptBlock。取决于何时您希望javascript执行。

详情请见:

http://msdn.microsoft.com/en-us/library/System.Web.UI.ClientScriptManager_methods.aspx

答案 4 :(得分:0)

另一种选择是在/ View文件夹和用户razor中创建脚本以生成脚本。

然后你可以指向标签中的页面,如

<script src="~/ScriptGenerator/MyScript" />

用于指向公开动作MyScript的控制器ScriptGeneratorController