1

助けてください!! 私はこれを何時間も検索してきましたが、おそらく解決策は非常に明白で、完全に見落としています:(

SQL テーブルにバインドするリストビューがあります。このテーブルには、ユーザー コメント用の自由型テキストを保持する最後の 2 つのフィールドを除いて、'T' または NULL 値のみを保持する一連のフィールドが含まれています。

T/NULL 値の場合 - リストビューは空のセルが表示されないように構成されており、'T' 値がある場合は代わりにカスタム テキストが表示され、次の項目の改行が作成されます。この構文はまさにそれを行います:

<asp:Label ID="LymeLabel" runat="server" Text='<%# Eval("Lyme","Lyme Disease<br />") %>' />

ただし、最後の 2 つのフィールド (自由形式のテキスト) を段落スタイルで表示し、Eval ステートメントを段落タグで囲みたいと思います。セルが空の場合に空白をレンダリングしないように、タグは Eval の一部を形成する必要があります。私の考えはこのようにすることでしたが、うまくいきません - 空白はどちらの方法でも表示されます:

<asp:Label ID="OtherCommentLabel" runat="server" Text='<%# "<p>"+Eval("OtherComment")+"</p>" %>' />

" "+ ... +" " は、真ん中に何があるかどうかは気にしないと思います..しかし、それを修正するにはどうすればよいですか? これには非常に簡単な解決策があるに違いありません。アドバイスをお願いします。

4

2 に答える 2

3

説明から、 はまったく必要ありませんasp:Label。タグでラップしないのはなぜEval()ですか?P

<p><%# Eval("Lyme","Lyme Disease") %></p>

ラベルが機能したとしても、結果のマークアップは必要ありません (ラベル内の段落は意味がありません)。

アイテムが空の場合に表示/非表示を処理するには、次のようにします。

<ItemTemplate>
    <p runat="server" visible='<%#!string.IsNullOrEmpty(Eval("OtherComment"))%>'>
        <%# Eval("Lyme","Lyme Disease") %>
    </p>
</ItemTemplate>
于 2012-10-05T08:26:31.200 に答える
2

p は Eval の一部ではないため、空白が表示されます。<p>Eval()</p>.

エレガントかどうかはわかりませんが、Eval をメソッド内にラップできます。

public string ParagraphIfData(string input)
{ 
    if(!string.IsNullOrEmpty(input))
        return "<p>" + input + "</p>";
    return "";
}

それで:

<%# ParagraphIfData(Eval("Lyme","Lyme Disease")) %>
于 2012-10-05T08:42:58.873 に答える