我的dropdownlist是用for循环写进去的 有多少行不确定 然后每行的倒数二三位要显示星号 但是我又要用dropdownlist.SelectedValue的值 如果我用星号直接替换掉了 那我取出来的值就不能用了 我保存2个数据的话那我选了第几个也不好对应起来 有没有什么好方法 只显示部分星号又要保持数据完整
DropDownList有DataTextField和DataValueField这2个配置,你配置不同的列不就行了,DataValueField对应值,DataTextField对应显示的内容
如果不能改数据源,自己用js更新下客户端对应的option就行了
<%@ Page Language="C#" %>
<meta charset="utf-8" />
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("txt"); dt.Columns.Add("value");
System.Data.DataRow dr = dt.NewRow();
dr["txt"] = "txt**"; dr["value"] = "txt12";
dt.Rows.Add(dr);
ddl.DataTextField = "txt";
ddl.DataValueField = "value";
ddl.DataSource = dt; ddl.DataBind();
}
</script>
<html>
<head></head>
<body>
<form runat="server">
<asp:DropDownList runat="server" ID="ddl"></asp:DropDownList>
</form>
<select id="Ddl">
<option value="text1">text1</option>
<option value="text2">text2</option>
<option value="text3">text3</option>
<option value="text4">text4</option>
</select>
<script>
var s = document.getElementById('Ddl');
for (var i = 0; i < s.options.length; i++) s.options[i].text = s.options[i].text.substring(0, s.options[i].text.length - 1) + '**'
</script>
</body>
</html>