代码之家  ›  专栏  ›  技术社区  ›  Jeremy Boyd

在datatextformstring中添加HTML

  •  1
  • Jeremy Boyd  · 技术社区  · 17 年前

    我从一个LINQ查询中填充了一个DropDownList。根据这个项目的设计要求,我需要在DDL的listem.text中附加4“”。

    当我像这样手动添加列表项时,它会工作:

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

    但当我databind()并使用:

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

    感谢您的帮助。

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

    谢谢!

    3 回复  |  直到 17 年前
        1
  •  0
  •   James    17 年前

    我能想到的唯一一件事是对DropDownList控件进行子类化,并重写render方法,看看是否可以绕过基本DropDownList控件在其项集合上所做的剪裁。

    如果子类工作太多,那么在页面加载时使用一些客户端JavaScript代码来更新这些项。这将是jquery的一个快照。希望有帮助。

        2
  •  1
  •   Canavar    17 年前
    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"));
    

    希望这有帮助!

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

        3
  •  0
  •   Community Mohan Dere    9 年前

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

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

    我希望这样做是为了避免恶意HTML在控件呈现到页面后破坏控件。

    我想 James' 建议某种自定义控件可能是获得所需功能的最佳方法。

    推荐文章