想要的效果如右图:
直接在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 >
< 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);
}
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()的方法来转化一下空格,经实验是不行的