当我添加& nbsp;或者& eacute;到一个listitem的文本值,它将显示HTML实体的代码而不是结果(一个空格或é)。不要在下拉列表中显示HTML代码和实体
我可以添加“物理”不间断空格或特殊字符,但如果可能,我想避免这种情况。有时存储在数据库中的数据是经过编码的,我不希望在显示数据之前总是处理数据。
任何解决方案?
感谢
编辑注:前面的描述指出它是关于一个下拉列表模拟树状,但它仅仅是一个例子;我不能也不想用其他任何东西替换掉dropdownlist。
当我添加& nbsp;或者& eacute;到一个listitem的文本值,它将显示HTML实体的代码而不是结果(一个空格或é)。不要在下拉列表中显示HTML代码和实体
我可以添加“物理”不间断空格或特殊字符,但如果可能,我想避免这种情况。有时存储在数据库中的数据是经过编码的,我不希望在显示数据之前总是处理数据。
任何解决方案?
感谢
编辑注:前面的描述指出它是关于一个下拉列表模拟树状,但它仅仅是一个例子;我不能也不想用其他任何东西替换掉dropdownlist。
ListItems会自动进行HtmlEncoded。
您可以事先HtmlDecode列表中的项目,所以他们HtmlEncoded当你得到正确的字符:
DropDownList1.DataSource = new List<string> { Server.HtmlDecode("A…"), Server.HtmlDecode("B C") };
DropDownList1.DataBind();
标准的下拉列表在代表treeview方面很差。
如果顶层不可选(参见optgroup元素[1]),他们可以处理深一层的水平,但除此之外,我建议您按照需要采用尽可能多的嵌套(有序或无序)记住子列表进入其父列表中的列表项),并包括一个带有每个可选列表项的复选框或单选按钮。
如果需要,可以添加一些JavaScript来操作类以创建下拉效果。
[1] Optgroup应该能够做得更深,但是IIRC浏览器支持很糟糕。
您可以将<optgroup>
标记用于分层(即树状)下拉菜单。
<select>
<optgroup label="Parent 1">
<option>Child 1.1</option>
<option>Child 1.2</option>
</optgroup>
<optgroup label="Parent 2">
<option>Child 2.1</option>
<option>Child 2.2</option>
</optgroup>
</select>
尝试使用ul(ol)并使用css。如果满足某些要求,您可以使用jquery更改样式(li具有值属性)
在提到的问题是不是我看到使用ASP的当前版本。 NET - 当我尝试它时,以下–
都被正确渲染:
<asp:RadioButtonList ID="Visibility" runat="server">
<asp:ListItem Value="public" Text="Public – All users"></asp:ListItem>
<asp:ListItem Value="private">Private – Only you</asp:ListItem>
</asp:RadioButtonList>