datatextformatstringにHTMLを追加します
-
23-08-2019 - |
質問
LINQクエリからドロップダウンリストが入力されています。このプロジェクトの設計要件に従って、4 ""をDDLのListItem.Textに追加する必要があります。
listItemsを手動で追加すると動作します。
<asp:ListItem Value="NULL">&nsbp;&nsbp;&nsbp;&nsbp;Select One</asp:ListItem>
しかし、私がdatabind()と使用するときではありません:
DataTextFormatString = "&nsbp;&nsbp;&nsbp;&nsbp;{0}";
どんな助けも感謝しています。
そして:誰かがHTMLコードについて何かを言う前に、私はそれを「&nsbp;」と呼ばなければなりませんでした非壊れたスペースcharコードを使用することは許可されないためです。
ありがとう!
解決
私ができると考えることができる唯一のことは、ドロップダウンリストコントロールをサブクラスし、レンダリング方法をオーバーライドし、ベースドロップダウンリストコントロールがアイテムコレクションで行っているトリミングを回避できないかどうかを確認することです。
サブクラスがあまりにも多くの作業である場合は、クライアント側のJavaScriptコードを使用して、ページの読み込みでそれらのアイテムを更新します。これはjQueryとのスナップです。それが役立つことを願っています。
他のヒント
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem(Server.HtmlDecode("& n b s p;&n b s p ;& n b s p ;&n bs p;abc"), "abc"));
お役に立てれば !
ノート : 文字間のスペースを削除します。
私はこれを見てきましたが、あなたが望んでいることをするために「箱から外れて」ドロップダウンリストコントロールを取得することは可能ではないと思います。
問題は、コントロールにバインドするテキスト値が自動的にHTMLエンコードされることです。これは、「&nbsp;」に常に変換されることを意味します。これは、データソースのテキスト値を制御にバインドする前に、またはDatateXtFormStringプロパティを介して追加するかどうかにかかわらず発生します。
これは、Rogue HTMLがページにレンダリングされると、コントロールが破損するのを避けるために行われると思います。
おもう ジェームズ ある種のカスタムコントロールの提案は、おそらくあなたが探している機能を得るためのあなたの最良の方法です。