0

私の質問への答えはどこかにあると確信していますが、見つけることができません。重複していたらすみません。

引き戻すデータに応じて、ページの読み込み時に可視性を設定する DIV があります。

したがって、コード ビハインドでは次のようになります。

this.divMyDiv.Visible = false

ユーザーがドロップダウン値を変更すると、DIV を表示しようとします

var div = document.getElementById('divMyDiv');
div.style.display = 'block';

最初のページの読み込み時にコード ビハインドによって div が表示されるように設定されている場合は、すべて問題ありません。ドロップダウン値を変更すると、DIV が表示および非表示になります。ただし、ページの読み込み時に DIV が非表示になっている場合、JavaScript の var div は常に null です。試してみvar div = document.getElementById('<%=divMyDiv.ClientID%>');ましたが、同じ結果が得られます。また、JS をページの下部に移動しようとしました。同じ結果です。

4

4 に答える 4

0

このプロパティが false の場合、サーバー コントロールはレンダリングされません。ページのレイアウトを整理するときは、これを考慮する必要があります。

コントロールをレンダリングするが非表示にする場合は、Visble = true のままにし、スクリプトまたは css を使用してコントロールを非表示にする必要があります。

div.style.display = 'none';

http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspxを参照してください。

于 2013-05-21T10:14:54.993 に答える
0

サーバー側でaspx コントロールを設定するVisible = falseと、コントロールは Html 応答でまったくレンダリングされないため、クライアント側で JavaScript を使用することはできません。レンダリングする必要があります ( Visible=true) が、css などを使用してコントロールを非表示にしますstyle='display:none'Visible=false および display:none; に関する質問も参照してください。

于 2013-05-21T10:14:07.023 に答える
0
this.divMyDiv.Visible = false

... div がまったくレンダリングされなくなり、Javascript がそれを見つけることができなくなります。それでもレンダリングしdisplay:noneて非表示にしたい場合は、そうする必要があります。

this.divMyDiv.Style["display"] = "none";
于 2013-05-21T10:19:07.040 に答える