0

jQuery multiselect に変更した asp:dropdownlist があります。ドロップダウン内のデータをグループ化する必要があります。これを実行時にグループ化しています。通常の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レンダリングが5未満の場合、JQueryは一致を返しません。

編集 私はあなたが私たちに与えたコードで解決策を作成しました、そして私が呼ぶまで私は$('select').multiselect();スタイルを適用することもできず、オプショングループが表示されます。

しかし、このスクリプトを適用すると、この例で示したものと同じドロップダウンが表示されます。そうして初めて、症状を再現することができます。

さらに調査したところ、呼び出された後に追加するコードを呼び出していることがoptGroupわかりました。$('select').multiselect();

ですから、コントロールが初期化された後、ドロップダウンの変更が行われていると思います。

ページにできるだけ早くoptGroupsを追加するスクリプトを配置し、その後に複数選択コントロールを初期化するコードを追加します。

于 2012-09-28T11:34:28.023 に答える