想要的效果如右图:

直接在Item的Text属性中写入前导半角空格是不行的,会被转化成
<select>
<option value="0">Level 00</option>
<option value="1">&nbsp;Level 01</option>
<option value="2">&nbsp;&nbsp;Level 02</option>
<option value="3">&nbsp;&nbsp;&nbsp;Level 03</option>
<option value="4">&nbsp;&nbsp;&nbsp;&nbsp;Level 04</option>
</select>即前面多了一个&,导致空格不能正常显示
解决办法:
1、打开输入法,插入全角空格……
2、用半角空格的特殊编码
char nbsp = (char)0xA0;
while (sdr.Read())
...{
string text = "└" + sdr["name"].ToString();
ListItem l = new ListItem(text.PadLeft(loc_depth, nbsp), sdr["id"].ToString());
ddlStructure.Items.Add(l);
generateItem(sdr["id"].ToString(), ++depth);
}
有人说用HtmlDecode()的方法来转化一下空格,经实验是不行的
本文探讨了在HTML中实现带有缩进效果的下拉菜单时遇到的问题,并提供了两种解决方案:一是使用全角空格;二是利用半角空格的特殊编码。这两种方法都能有效避免浏览器将半角空格转换为不可见字符,从而实现实现所需的缩进效果。
1401

被折叠的 条评论
为什么被折叠?



