0

我有一个 asp:dropdownlist 已更改为 jQuery 多选。我必须在下拉列表中对数据进行分组。我在运行时对它进行分组。如果它是一个正常的 asp 下拉列表,它可以工作。应用 jquery Multiselect 时,它不会。

资源:

<link rel="stylesheet" type="text/css" href="Styles/jquery.multiselect.css" />
    <link rel="stylesheet" type="text/css" href="Styles/jquery.multiselect.filter.css" />
    <link rel="stylesheet" type="text/css" href="Styles/style.css" />
    <link rel="stylesheet" type="text/css" href="Styles/prettify.css" />
    <%--<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>--%>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
    <script type="text/javascript" src="Scripts/jquery.multiselect.js"></script>
    <script type="text/javascript" src="Scripts/jquery.multiselect.filter.js"></script>
    <script type="text/javascript" src="Scripts/prettify.js"></script>

 <script type="text/javascript">
        $(document).ready(function () {
            //Create groups for dropdown list
            $("option[classification='LessThanFive']").wrapAll("<optgroup label='Less Than Five' />");
            $("option[classification='GreaterThanFive']").wrapAll("<optgroup label='Greater Than five' />");
        });

    </script>

 <asp:DropDownList ID="MobileData" runat="server" OnDataBound="ddl_DataBound">
            </asp:DropDownList>

//后面的代码:

protected void ddl_DataBound(object sender, EventArgs e)
    {
        foreach (ListItem item in ((DropDownList)sender).Items)
        {

            if (System.Int32.Parse(item.Value) < 2)
                item.Attributes.Add("classification", "LessThanFive");
            else
                item.Attributes.Add("classification", "GreaterThanFive");

        }

    }

  protected void Page_Load(object sender, EventArgs e)
    {
          ListItemCollection list = new ListItemCollection();     
           list.Add(new ListItem("1", "1"));
           list.Add(new ListItem("2", "2"));
           list.Add(new ListItem("3", "3"));
           list.Add(new ListItem("4", "4"));
           list.Add(new ListItem("5", "5"));
           list.Add(new ListItem("6", "6"));
           list.Add(new ListItem("7", "7"));
           list.Add(new ListItem("8", "8"));
           list.Add(new ListItem("9", "9"));
           list.Add(new ListItem("10", "10"));

           MobileData.DataSource = list;
           MobileData.DataBind();
   }

我哪里错了?

4

1 回答 1

0

它在这里为我工作

确保选择中的大小写是正确的,

如果您在 JQuery 中有 LessThanFive 并且 HTML 呈现为小于五,则 JQuery 将不会返回匹配项。

编辑 我已经用你给我们的代码创建了一个解决方案,直到我打电话$('select').multiselect();我也无法应用任何样式,并且选项组出现了。

但是一旦我应用了这个脚本,我就会得到与这个例子中给出的相同的下拉列表。只有这样我才能重现症状。

经过进一步调查,我查看并看到我正在调用代码以在调用optGroup之后添加$('select').multiselect();

所以我认为您对下拉菜单的更改是在控件初始化后发生的。

尽早将脚本添加到页面中,然后添加代码以初始化多选控件。

于 2012-09-28T11:34:28.023 回答