如何将C#变量的值传递给javascript?

时间:2012-07-05 09:59:00

标签: c# javascript asp.net

在按钮点击事件中,我正在编写此代码。(代码隐藏)。我知道按钮点击事件

protected void button_click()
{         
    string s1 = "Computer"; 
    StringBuilder sb = new StringBuilder(); 
    sb.Append(@"<script language='javascript'>"); 
    sb.Append("document.write('<table><tbody>')";); 
   sb.Append("document.write('<tr><td>Information</td></tr>')";); 
    if(s1 == "Computer" ) 
   {
     sb.Append("<tr><td>s1</td></tr>"); 
   }
   sb.Append("document.write('</tbody></table>')";);
   sb.Append(@"</script>"); 

}

它正在工作但我希望s1的值不是s1.I知道javascript是客户端编程。我在按钮点击事件中写了这个函数。如何将计算机s1的值传递给表格的单元格

4 个答案:

答案 0 :(得分:4)

简单地

sb.Append("document.write('<tr><td>" + s1 + "</td></tr>');"); 

答案 1 :(得分:3)

你试过吗

    if(s1 == "Computer" )  
   { 
     sb.Append("<tr><td>"+s1+"</td></tr>"); 
   }

答案 2 :(得分:3)

您可以将此行更改为:

sb.Append("<tr><td>" + s1 + "</td></tr>");

答案 3 :(得分:1)

您的代码与您提出的问题有点无关。您的错误已由先前的答案修复。但我会尝试进一步扩大asnwer。如果您希望将某些值从C#传递给JavaScript,则会有不同的方法。

1)您可以在代码隐藏文件中创建受保护的方法,并从.aspx文件中调用它,例如

<强> my.aspx

<script type="text/javascript">
var x = '<%= GetMyValue() %>';
DoFooWithX(x);
</script>

<强> my.aspx.cs

protected string GetMyValue()
{
    return "example";
}

2)如果您希望在页面加载完成后执行一些JavaScript,您也可以从代码隐藏中执行此操作

<强> my.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    string myScript = string.Format("myVar = '{0}';", GetMyVarValue());
    ScriptManager.RegisterStartupScript(this, this.GetType(), "MyVarSetter", myScript, true);
}
private string GetMyVarValue()
{
    return "example";
}