1

ラベルに特定の値がある場合、それを目立たせる必要がある表形式のデータがいくつかあります。TDのスタイリングでやろうとしています。私のC#は値を設定しますLabel1.text

そうするための他の方法を考えることができますか?あいまいなエラーをスローしています。

 <% if (Label1.Text == "1") { %>
            <td style="background:#ffedad; border:#e3a345; color:#cd5c0a"><asp:Label ID="Label1" runat="server" /></td>
 <% }  else {%>
      <td><asp:Label ID="Label1" runat="server" /></td>
 <% } %>

編集

他のことをしました(そしてよりきれいに)。

td.altラベルの値を取得するために、css ファイルのいくつかの新しい変数とともに、いくつかのコード ビハインド変数に取り組みました。の場合1は、 classLabel変数をaltに設定してからclasstd

<td class="<%classLabel%>"><asp:Label ID="Label1" runat="server" /></td>

それでも、aspx ページのこの最後の行でエラーが発生しています。エラーがどこにあるのでしょうか?

4

2 に答える 2

1

ブラウザで直接レンダリングできるフォーマットされたHTML文字列を返すコードビハインドメソッドを呼び出すことができます。そのコードビハインドメソッドでは、ほとんどすべてのことを実行できます。つまり、あらゆるタイプのデータベースまたはあらゆるビジネスロジックにアクセスできます。

コンテンツをカプセル化する可​​能性のあるreturndiv要素(スタイルなし)。コードビハインドメソッド内にif-elseロジックを含めることで、異なるIDまたはクラスのdivを返すことができます。次に、さまざまなCSSスタイルを記述して、さまざまなdivに適用できます。

<% if (Label1.Text == "1") { %> 
        <td style="background:#ffedad; border:#e3a345; color:#cd5c0a">
        <%# generateOutput() %></td> 
<% }  else {%> 
  <td> <%# generateOutput() %> </td> 
<% } %>

asp.netマークアップにif-elseを含める代わりに、単純に次のようにすることができます。

<%# generateOutput() %>

コードビハインドからコンテンツ全体を返し、CSSファイルにスタイルを書き込みます。

表示されるコンテンツが多少複雑な場合は、この2番目のアプローチが機能します。そうでない場合は、最初のアプローチをお勧めします。

ただし、データベースから直接データにアクセスしている場合は、GridViewなどのASP.NETデータコントロールをテンプレートでスタイル設定し、クエリ文字列またはフォーム値を使用してデータをフィルター処理することもできます。

于 2012-10-05T13:20:18.037 に答える
1

あなたは一行でこれを試すことができます:

<td <%=Label1.Text != "1"?"":"style='background:#ffedad; border:#e3a345; color:#cd5c0a'"%>><asp:Label ID="Label1" runat="server" /></td>

cssクラスの背後にあるスタイルコードを設定すると、よりクリーンなIMHOになります

これがお役に立てば幸いです

于 2012-10-05T13:21:06.203 に答える