私はGridViewを持っています。実際の詳細データであるセルのコンテンツをhtmlでエンコードすることを希望します。しかし、私は見出しに生のHTMLを残したいと思います。本文をhtmlencodeする方法はありますが、グリッドビューの見出しはありません
つまり、この場合の見出しは言語名とISOコードです(例:英語(EN))。私は名前とコードを別々の行に入れたいので、見出しを "< br/>(EN)"と指定しています。
しかし、コンテンツについては、HTMLを見たいと思っています。 "<p> foobar </p >"と表示されている場合は、「pタグを表示します。
"htmlencode = false"と言うと、見出しはエンコードされませんが、データはどちらも表示されません。
ヘッダーではなく、データをHTMLエンコードする方法はありますか?
重要な点は、データで見つかった言語に応じて、ASPファイルのタグではなくコードで列を作成することです。だからここに私は列を作成しています方法は次のとおりです。
For Each row As DataRow In ds.Tables(0).Rows
Dim iso2 = row("language")
Dim name = row("name")
... other code ...
Dim head = String.Format("{0}<br/>({1})", name, iso2)
gvSnippets.Columns.Add(New BoundField With {.HeaderText = head, .DataField = iso2, .HtmlEncode = False})
... other code ...
End For
(私の最初の草案は、HtmlEncodeを設定しませんでした。)
興味観察:試験運転の私の最初のカップルでは、データは任意のHTMLが含まれていませんでしたかエンティティであり、見出しのHTMLがエンコードされていない場合、私は改行を受け取り、 "< br/>"ではありません。次に、データにエンティティが存在し、エンティティがhtmlエンコードされたテストを行いました...ヘッダーも同様でした。 ASPのように、デフォルトでは、データにHTMLはないが見出しがある場合は、見出しをHTMLエンコードしないでください。しかし、データにHTMLがある場合は、データと見出しの両方をHTMLエンコードします。同様に、見出しをhtmlエンコードするかどうかを動的に決定します。 @fnostroに返信するには
は、ここにGridViewのためのマークアップです:
<asp:GridView ID="gvSnippets" runat="server" AutoGenerateColumns="False" SkinID="skin3" EmptyDataText="No records found" Visible="false">
</asp:GridView>
は何<列>マークアップはありません。私は完全にコードで列を構築します。マークアップで列を指定するより一般的なケースと同じ動作が発生するかどうかはテストしていません。
'GridView'の' 'マークアップを提供できますか? –
fnostro