DataList
SQLデータベースまたは同様のコントロールにプルされた改行文字を表示する際に問題が発生します。文字を挿入するときに文字を保持していますが、簡単なSELECT
ステートメントで改行が表示されます。ただし、データをデータリストにプルすると、新しい行ではなくスペースが表示されます。現在、コードは次のようになっています。
<asp:Label ID="CommentLabel" runat="server" Text='<%# Eval("Comment").ToString().Replace(Environment.NewLine, "<br />") %>' />
使用するための推奨事項Server.HTMLEncode
も確認しましたが、そのような状況での使用例はありません。次のような目に見える違いはありません。
<asp:Label ID="CommentLabel" runat="server" Text='<%# Server.HTMLEncode(Eval("Comment").ToString()).Replace(Environment.NewLine, "<br />") %>' />
ここでパズルのピースが欠けていますか?
編集:新しい行は、複数行のテキストボックス内のEnterキーを使用して作成されます。含まれている文字とは異なる文字になるかどうかはわかりませEnvironment.Newline
んが、生成されたHTMLには<span>
、適切な改行が入ったタグが表示されますが、タグは表示されない<br />
ため、異なると思います。もしそうなら、置き換えるのに適切なキャラクターは何ですか?
EDIT2:アイテムテンプレートのコード
<ItemTemplate>
<tr style="font-weight:bold">
<td>
Comment ID: <asp:Label ID="CommentIDLabel" runat="server" Text='<%# Eval("CommentID") %>' />
Commenter: <asp:Label ID="CommenterLabel" runat="server" Text='<%# Eval("Username") %>' />
Comment Date: <asp:Label ID="DateLabel" runat="server" Text='<%# Eval("Date") %>' />
</td>
</tr>
<tr>
<td>
<asp:Label ID="CommentLabel" runat="server" Text='<%# (Eval("Comment")).Replace(Environment.NewLine, "<br />") %>' />
</td>
</tr>
</ItemTemplate>