2

C#で作成されたラベルにCSSを適用する方法を理解しようとしています。すべてがコンパイルされて実行されますが、CSSを適用していないようです。CSSは、サイトマスターページでリンクされているファイルにあります。CSSファイル内の他のすべてが適切に適用されています。

コードビハインド:

...
Label label = new Label();
SqlCommand command = new SqlCommand("SELECT Q_Text FROM HRA.dbo.Questions WHERE QID = 1");
command.Connection = connection;
reader = command.ExecuteReader();
reader.Read();
label.Text = reader["Q_Text"].ToString();
label.ID = "rblabel";
label.CssClass = "rblabel";
reader.Close();
holder.Controls.Add(label);
...

ASP:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <asp:PlaceHolder ID="holder"  runat="server">

    </asp:PlaceHolder>
</asp:Content>

CSS:

.rblabel {
    text-align:left;
    padding-left: 2em;
    font-size: 4em;
}

編集:HTMLとControl.Add()ステートメントをコードに追加しました(コピー/ペースに含めるのを忘れました)。このHTMLは、その中に入れられたもののすべてですPlaceHolder

HTML:

<section class="content-wrapper main-content clear-fix">
    <span id="MainContent_rblabel" class="rblabel">TEST TEST TEST</span>
    <table id="MainContent_ctl00" class="radio">
    <tr>
        <td><input id="MainContent_ctl00_0" type="radio" name="ctl00$MainContent$ctl00"value="1" />
        <label for="MainContent_ctl00_0">Excellent</label></td>
    </tr><tr>
  <td><input id="MainContent_ctl00_1" type="radio" name="ctl00$MainContent$ctl00" value="1" />
         <label for="MainContent_ctl00_1">Good</label></td>
    </tr><tr>
   <td><input id="MainContent_ctl00_2" type="radio" name="ctl00$MainContent$ctl00"value="1" />
          <label for="MainContent_ctl00_2">Fair</label></td>
    </tr><tr>
   <td><input id="MainContent_ctl00_3" type="radio" name="ctl00$MainContent$ctl00"value="1" />
         <label for="MainContent_ctl00_3">Poor</label></td>
    </tr>
</table>
</section>
4

4 に答える 4

1

基本的に2つの可能性があります:

  1. CLASS属性が目的のCSSクラスに設定されたラベルがレンダリングされていない可能性があります。レンダリングされたHTMLを確認することで確認できます。(ラベルがまったく表示されない場合、コードは、そのラベルを親のControlsコレクションに追加していない可能性があることを示しています。)

  2. すべてが正しくレンダリングされていますが、CSSまたはそれをオーバーライドする別のスタイルシートに問題があるため、ブラウザに正しく表示されません。これをデバッグするには、FirebugまたはIEの開発者ツールを使用する必要があります。

幸運を!

于 2012-10-24T17:01:02.807 に答える
0

CssClassプロパティは、http://www.w3schools.com/aspnet/prop_webcontrol_style_cssclass.aspにアクセスするための適切な方法です。

ページ/コンテナなどにラベルを追加するコードを省略しました。これは、エラーが発生する可能性があります。

ページのHTMLソース出力を表示して、生成するラベルに「rblabel」の値を持つCLASS属性が実際に含まれているかどうかを確認することも役立ちます。

悪化した場合は、HTMLにラベルを入力する代わりにリテラルを使用してください。

于 2012-10-24T16:57:47.007 に答える
0

表示したい場所に実際にラベルを追加しているようには見えません。次のようなものを試してください:

holder.Controls.Add(label);

コードビハインドで。

于 2012-10-24T16:58:16.070 に答える
0

スパンはインライン要素であるため、パディング、幅、高さがすべてのブラウザで常に適用されるとは限りません。に設定してみてくださいinline-block

.rblabel {
    text-align:left;
    padding-left: 2em;
    font-size: 4em;
    display: inline-block;
}
于 2012-10-24T17:15:09.623 に答える