1

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

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

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

但不是当我 DataBind() 并使用:

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

任何帮助表示赞赏。

并且:在有人谈论 HTML 代码之前,我不得不称它为“&nsbp;” 因为它不允许我使用非中断空间字符代码。

谢谢!

4

3 回答 3

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

希望这可以帮助 !

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

于 2009-02-13T17:48:35.237 回答
0

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

如果子类化工作量太大,则使用一些客户端 Javascript 代码在页面加载时更新这些项目。这对于 JQuery 来说是一件轻而易举的事。我希望这会有所帮助。

于 2009-02-13T17:23:28.417 回答
0

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

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

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

我认为James对某种自定义控件的建议可能是您获得所需功能的最佳方式。

于 2009-02-13T17:42:41.833 回答