我有一个从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;'。无论您是否将“”添加到数据源中的文本值之前,都会发生这种情况。

我希望这样做是为了避免Rogue HTML一旦将其渲染到页面上。

我认为 詹姆士' 某种自定义控制的建议可能是获得寻找功能的最佳方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top