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

あなたのコードはあなたが尋ねている質問とは少し無関係です。あなたのエラーは以前の回答によってすでに修正されています。しかし、私はさらに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";
}
于 2012-07-05T10:10:35.007 に答える