ラベルのテキストを変更するにはサーバサイドJavaScript(aspx.cs)Attributes.Addコード
-
20-08-2019 - |
質問
私は、Page_Loadイベント内のサーバーサイドJavaScript(のonclick)とC#を使用して、ラベルのテキストを変更しようとしています。例えば、私は次のようなものを書きたいと思います:
Label1.Attributes.Add("onclick", "Label2.text='new caption'")
誰もがこのための正しいコードを知っていますか?また、参照コードのこのタイプは何ですか。それだけではJavaScriptまたはJavaScriptはC#であるか、特定の名前はありますか?最後に、本やオンラインリソースがcontrol.attributes.addの選択肢(「イベント」、「構文」)は、C#で使用するコードを示していますその存在していますか?
解決
(あなたが実際にサーバー言語としてJavascriptを使用してASP.NET以外のプラットフォームに変更しない限り)は、サーバサイドJavaScriptはありません。あなたがやっていることはhtmlタグに属性を追加することで、コードは、クライアント側で完全に実行されます。
まずは、それは、サーバー側のコードとサーバー側のコントロールなしにHTMLに行うのかを見てみましょう。
<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>
サーバー側のコードからのonclick属性を設定し、代わりにコントロールをLabel
使用するには、次のように行います。
Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");
このは限りコントロールが名前付けコンテナの内側ではありませんように動作します。その場合、コントロールのidがユニークそれらを保つために、コンテナの名前を前に付加するので、あなたは彼らの最後のidがあるかを調べるためにClientID
プロパティを使用する必要がありますされます:
Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");
<=>いつもあなたはJavascriptから要素にアクセスするために使用するIDが含まれているので、コントロールが名前付けコンテナにであるかどうか、最後のコードは関係なく、常に動作します。
あなたは、あなたが例えば、HTMLドキュメントで<のhref = "http://msdn.microsoft.com/en-us/library/ms535895用のInternet Explorerのマニュアルを見る必要があります使用することができますどのような属性を調べるには(VS.85).aspxの」REL = "nofollowをnoreferrer"> span要素を。特定の機能のdocumetationを見ると、それは任意のブラウザでか、単にInternet Explorerで動作するかどうかそれはあなたを教えてくれるよう、規格情報に注意してください。
他のヒント
上記のコードは、クライアント上でレンダリングされたサーバーコントロールにJavaScriptを追加します。 ASP.NET 詳細については。
IIRC、あなたはそのクライアントIDでLabel2
を参照する必要がありますし、(私はASP.NETのラベルがタグ<span>
としてレンダリングさだと思う)ラベルのテキスト値を変更するには、いくつかのJavaScriptを記述する必要があります。