C#とjavascriptの間の "Visible"プロパティ

まず奇妙なタイトルに対する謝罪。 1つの笑を考えることができませんでした。

コードの中の要素を隠すと(c#)、たとえば:

btnRemoveAvail.Visible = false;

次のjquery行は表示されません(時間が表示されなくなったとき)。

$('#btnRemoveAvail').show();

(まったくエラーを返しません。まるで100%クールですが、何も起こりません)

I tried then the following (as the jQuery forum says .show is similar to setting display to block..?): document.getElementById("btnRemoveAvail").style.display = "block";

And that returned an error: document.getElementById("btnRemoveAvail") is null

私はおそらく何か単純なことは、私はコードの背後にあるとHTMLの間で完全に誤解していると確信しています..

0
WebFormsまたはMVCを使用している場合は、質問に適切なタグを付けることができますのでお知らせください。
追加された 著者 Amy,

2 答え

WebForms(私はあなたがwebformsを使用していると仮定している)では、コントロールの可視性をfalseに設定するとhtmlでレンダリングされないので、jqueryを操作するDOMでは利用できません。

もしあなたがそれを利用可能にしたいなら、クライアント側の属性をこのようなコードの背後から設定することができます。

 btnRemoveAvail.Attributes.Add("style","display:none");

jqueryを使用して可視性やその他のプロパティを操作できるようになりました。これはDOMでは使用できるようになりますが、表示されないためです。

お役に立てれば。

3
追加された
はい、ありがとう、Scartag!
追加された 著者 Marthinus Elliott,

btnRemoveAvail という名前のページに要素が作成されていることを確認できますか?

私はそれが作成されていないと確信しています。私は、サーバー側からVisible = falseとしてボタンを設定するだけで、クライアント上のオブジェクトをレンダリングしないと考えています。

あなたがする必要があるのは、 display:none を含むようにボタンのスタイルを設定することです。そうすれば、要素はレンダリングされますが、CSSを介して隠されます。その後、.showメソッドを呼び出すことができます。これはうまくいくはずです。

1
追加された
JQueryについて知らない人は、JQueryを勉強してみることをお勧めします。これは、DOMの操作をずっと簡単にします。 $( '#btnRemoveAvail').css( 'display'、 'block')を使用することができる document.getElementById( "btnRemoveAvail")。style.display = "ブロック"; ;
追加された 著者 agarcian,
だから私は今日何か新しいことを学んでいる。ありがとう
追加された 著者 Marthinus Elliott,