Заполните поле множественного выбора, используя jquery - PullRequest
6 голосов
/ 31 августа 2011

Я могу заполнить выпадающий список, используя jquery, как показано ниже:

Выпадающий список:

<select id="province"></select>

Код сценария:

$(document).ready(function(){
    $.ajax({
            type: "POST",
            url: "function.aspx/provincelist",
            data: "",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function OnPopulateControl(response) {
                list = response.d;
                if (list.length > 0) {
                    $("province").removeAttr("disabled");
                    $("province").empty().append('<option value="0">Please select</option>');
                    $.each(list, function () {
                        $("province").append($("<option></option>").val(this['Value']).html(this['Text']));
                    });
                    $("province").val(valueselected);
                }
                else {
                    $("province").empty().append('<option selected="selected" value="0">Not available<option>');
                }
            },
            error: function () {
                alert("Error");
            }
        });

});

Файл function.aspx с функцией провинциального списка:

[System.Web.Services.WebMethod]
    public static ArrayList provincelist()
    {
        ArrayList List = new ArrayList();
        SqlConnection con = DBclass.moketnoi();
        SqlCommand cmd = new SqlCommand("SELECT TC_CODE, TC_NAME FROM PM_PROVINCE", con);
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            List.Add(new ListItem(
                sdr["TC_NAME"].ToString(),
                sdr["TC_CODE"].ToString()
                ));
        }
        con.Close();
        return List;
    }

Как я могу заполнить поле множественного выбора таким же образом, как указано выше, пожалуйста, помогите мне.Спасибо.(я использую плагин multi-select box http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/,, но я могу заполнить данными с сервера)

1 Ответ

11 голосов
/ 31 августа 2011

не очень понятно, но я думаю, что после того, как вы закончите добавление параметров к select, вам нужно обновить его как

$("#province").multiselect('refresh');

см. Здесь http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/#refresh

также вместо.removeAttr Вы можете включить и отключить множественный выбор

http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/#enabledisable

PS: вы выбираете раскрывающийся список по идентификатору, и он выглядит как $("#province") НЕ как $("province")

взгляните на селекторы идентификаторов jquery

ваш полный код может выглядеть как

<select id="province" multiple="multiple"></select>

-

$(document).ready(function(){
    var $select = $("#province").multiselect();//apply the plugin
    $select.multiselect('disable'); //disable it initially
    $.ajax({
            type: "POST",
            url: "function.aspx/provincelist",
            data: "",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function OnPopulateControl(response) {
                list = response.d;
                if (list.length > 0) {
                    $select.multiselect('enable');
                    $("#province").empty().append('<option value="0">Please select</option>');
                    $.each(list, function () {
                        $("#province").append($("<option></option>").val(this['Value']).html(this['Text']));
                    });
                    $("#province").val(valueselected);
                }
                else {
                    $("#province").empty().append('<option selected="selected" value="0">Not available<option>');
                }
              $("#province").multiselect('refresh'); //refresh the select here
            },
            error: function () {
                alert("Error");
            }
        });

});
...