2

在按钮单击事件中,我正在编写此代码。(后面的代码)。我知道按钮单击事件

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。我知道 javascript 是客户端编程。我在按钮单击事件中编写了这个函数。如何将计算机的 s1 的值传递给表格的单元格

4

4 回答 4

4

简单地

sb.Append("document.write('<tr><td>" + s1 + "</td></tr>');"); 
于 2012-07-05T10:01:05.813 回答
3

你有没有尝试过

    if(s1 == "Computer" )  
   { 
     sb.Append("<tr><td>"+s1+"</td></tr>"); 
   }
于 2012-07-05T10:01:00.770 回答
3

您可以将此行更改为:

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

于 2012-07-05T10:01:04.153 回答
1

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

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

我的.aspx

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

我的.aspx.cs

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

2)如果您希望在页面完成加载后执行一些 JavaScript,您也可以像这样从您的代码隐藏中执行它

我的.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";
}
于 2012-07-05T10:10:35.007 回答