2017-08-29 5 views
0

現在、3つのラジオボタンを使用し、GroupNameを使用してグループ化しています。サーバ側からRadioButton(ラジオボタンリストにない)を無効にする

ラジオボタンのコード今、特定の条件に基づいて

<asp:Panel class="RBPnl" runat="server" ID="pnl_rb"> 
     <asp:RadioButton ID="rb" runat="server" GroupName="rbg_RB" Text="Radio Button" CssClass="RB" /> 
      <label class="RBDesc">Radio Button Descriptions</label> 
</asp:Panel> 

私は背後にあるコードからラジオボタンを無効にしたいです。 SO & Googleを検索し、ほとんどの解決策は以下の2つの方法を述べました:

  1. rb.enabled = false;

結果:

<span class="aspNetDisabled RB"> 
<input id="cph_content_rb" type="radio" name="ctl00$cph_content$rbg_rb" value="rb"> 
<label for="cph_content_rb">Radio Button</label></span> 
  • rb.Attributes.add( "無効"、 "無効")。
  • 結果:

    <span class="RB" disabled="disabled"> 
    <input id="cph_content_rb" type="radio" name="ctl00$cph_content$rbg_rb" value="rb"> 
    <label for="cph_content_rb">Radio Button</label></span> 
    

    あなたはそれが代わりにスパンでの入力が、コードの無効化を無効にする必要がありますので、私は両方試してみましたが、それでもたぶん無効のラジオボタンをチェックすることができる見ることができるように。 (C#の)私はあなたの問題を推測

    +0

    'rb.Enabled = false'を、結果のさをトリガーするWebページ上のどのような行動を知っている必要がありますラジオボタンに追加された 'disabled'プロパティの中にあります。私たちがこのラジオボタンやグループについて知るべきことは他にありますか? – Nico

    +0

    @Nicoはラジオボタンのhtmlコードを追加しました。 – JamesYTL

    答えて

    0

    がある

    私はJavascriptをラジオボタンの子供(入力)に無効な属性を追加することによってこの問題を解決することができます知っているが、私は、サーバー側で無効にする方法を知りたい:Asp.netをWebFormバックエンドコードはHTMLを動的に変更しません。

    あなたは違いを見るためのWinFormでWebフォームを比較することができる:Winフォームのデスクトップアプリケーションで

    • は、アプリケーションのウィンドウが自動的に が第二自体を数回更新します。コードで ラジオボタンを無効にすると、アプリケーションウィンドウが にリフレッシュした後、数ミリ秒でラジオボタンBECOMEが無効になっていることがわかります。
    • WebForm Webアプリケーションでは、Webページが自動で を更新しません。あなたのウェブページがサーバーに何かを送り返すと(たとえば、ボタンクリックイベント)、 が送信され、 全ページがリフレッシュされるときにのみ更新されます。

    ですから、Webページが何かを送り返し、それがブラウザにレンダリングされる前に、後に起こった各ステップの実行順序を明確にする必要があります

    1. 何かがブラウザで起こった(例えばURLを入力します を入力し、ロードしたページのボタンをクリックするなど)
    2. ブラウザはサーバーに要求を送信します。あなたのウェブページ上の何かが によって引き起こされた場合、リクエストにはViewStateと呼ばれる大きなものを含む多くの 情報が含まれます。
    3. サーバーはViewStateをC#オブジェクトに解析します(WebページはWinFormデスクトップアプリケーションのようにC#クラスとして にコンパイルされています)。 にViewStateが含まれていない場合、サーバーはオブジェクトを新しく追加します。
    4. 要求に応じて、特定のコードが実行されます。 (例えば OnXxxClicked、等)
    5. その BaseClassのから継承されたウェブページのオブジェクト、メソッド、呼び出されると、それは、HTML文字列と、そのHTML文字列内の エンコードされたビューステート文字列としてそれ自体をレンダリングします。
    6. 最後に、この長いhtml文字列がブラウザに送信されます。

    は、だから、ステップ3で実行されたラジオボタンを無効にしてください、あなたのコードを作成する必要があります。また、ステップ1

    +0

    これはページの読み込み時に実行されるので、これが主な理由ではないと思います(プラス、私は実際に無効にしたラジオボタンのテキストを実際に編集しようとしました。無効にはできません) – JamesYTL

    関連する問題