tankgoing
tankgoing
2018-04-16 09:32
采纳率: 61.3%
浏览 646

asp.net的dropdownlist部分用星号代替

我的dropdownlist是用for循环写进去的 有多少行不确定 然后每行的倒数二三位要显示星号 但是我又要用dropdownlist.SelectedValue的值 如果我用星号直接替换掉了 那我取出来的值就不能用了 我保存2个数据的话那我选了第几个也不好对应起来 有没有什么好方法 只显示部分星号又要保持数据完整

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • showbo
    已采纳

    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>
    
    点赞 评论

相关推荐