在 DataTextFormatString 中添加 html

发布于 2024-07-13 10:54:45 字数 495 浏览 5 评论 0原文

我有一个由 LINQ 查询填充的 DropDownList。 根据本项目的设计要求,我需要附加4个“ ” 到 DDL 的 ListItem.Text。

当我像这样手动添加 ListItems 时它可以工作:

<asp:ListItem Value="NULL">&nsbp;&nsbp;&nsbp;&nsbp;Select One</asp:ListItem>

但当我 DataBind() 和使用时则不行:

DataTextFormatString = "&nsbp;&nsbp;&nsbp;&nsbp;{0}";

任何帮助都是值得赞赏的。

AND:在有人谈论 HTML 代码之前,我必须将其称为“&nsbp;” 因为它不允许我使用不间断空格字符代码。

谢谢!

I have a DropDownList populated from a LINQ query. As per the design requirements of this project, I need to append 4 " " to the DDL's ListItem.Text.

It works when I add the ListItems manually like so:

<asp:ListItem Value="NULL">&nsbp;&nsbp;&nsbp;&nsbp;Select One</asp:ListItem>

but not when I DataBind() and use:

DataTextFormatString = "&nsbp;&nsbp;&nsbp;&nsbp;{0}";

Any help is appreciated.

AND: Before someone says something about the HTML code, I had to call it a "&nsbp;" since it wouldn't allow me to use Non-Breaking Space char code.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烟燃烟灭 2024-07-20 10:54:46
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"));

希望这可以帮助 !

注意:删除字符之间的空格。

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"));

Hope this helps !

Note : remove the spaces between characters..

﹎☆浅夏丿初晴 2024-07-20 10:54:46

我唯一能想到的就是对下拉列表控件进行子类化并重写渲染方法,看看是否无法规避基本下拉列表控件对其项目集合所做的修剪。

如果子类化工作量太大,则使用一些客户端 Javascript 代码在页面加载时更新这些项目。 这对于 JQuery 来说是小菜一碟。 我希望这有帮助。

The only thing that I can think to do is sub-class the dropdownlist control and override the render method and see if you can't circumvent the trimming that the base dropdownlist control is doing on its items collection.

If sub-classing is too much work, then use some client side Javascript code to update those items upon page load. This would be a snap with JQuery. I hope that helps.

似梦非梦 2024-07-20 10:54:46

我已经看过这个,我认为不可能让“开箱即用”的下拉列表控件来做你想要它做的事情。

问题是您绑定到控件的任何文本值都将自动进行 html 编码。 这意味着“ ” 将始终转换为“ ”。 无论您添加“ ”,都会发生这种情况 在将数据源绑定到控件之前或通过 DataTextFormatString 属性更改为数据源中的文本值。

我希望这样做是为了避免流氓 html 在渲染到页面后破坏控件。

我认为 James 对某种自定义控件的建议可能是你最好的方法以获得您正在寻找的功能。

I've had a look at this and I don't think it is possible to get the 'out of the box' dropdownlist control to do what you are wanting it to do.

The problem is that any text values you bind to the control will automatically be html encoded. This means that ' ' will always be converted to '&nbsp;'. This happens whether you add the ' ' to the text values in your data source before binding it to the control or via the DataTextFormatString property.

I expect this is done to avoid rogue html breaking the control once it is rendered to the page.

I think James' suggestion of some kind of custom control is probably your best way to get the functionality your looking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文