如何重新加载下拉列表

时间:2014-07-23 12:34:36

标签: c# javascript jquery asp.net

我想重新加载下拉列表。

如果我现在在下拉列表中进行选择并选择其他选项,那么之前的值也会显示。

 <script type="text/javascript">
    $(document).ready(function () {
        $("#SelectedCategoriedFaqId").change(function () {
            $.ajax({
                url: "/Medicijnverstrekking/FAQ/SubCategorie/",
                type: 'POST',
                dataType: 'json',
                data: {
                    Categorieid: this.value
                },
                success: function (data) {
                    $('SelectedCategoriedFaqId').val('').trigger('liszt:updated');
                    //alert("Data retrieval successfull");
                    var items = "";

                    $.each(data, function (i, val) {
                        var opt = $("<option></option>")
                          .attr("value", val.Value)
                          .text(val.Text);
                        $('#FaqCategorie_Id').append(opt);
                    });

                },
                error: function (xhr) {
                    alert("Something seems Wrong");
                }
            });

        });  
    });      
</script>

谢谢

2 个答案:

答案 0 :(得分:1)

在以下

之前
$.each(data, function (i, val) {
                    var opt = $("<option></option>")
                      .attr("value", val.Value)
                      .text(val.Text);
                    $('#FaqCategorie_Id').append(opt);
                });

只写:

$('#FaqCategorie_Id').empty();

这将从您的下拉菜单中删除所有项目,然后您从ajax请求中获取的新项目将附加到您的下拉列表中。

答案 1 :(得分:0)

在附加ajax-retrieval选项之前,您应首先从列表中删除所有其他选项。假设第一个选项是

<option value=""></option>

,你可以:

success: function (data) {
    var ddl = $('SelectedCategoriedFaqId');
    ddl[0].options.length = 1;
    ddl.val('').trigger('liszt:updated');
    //alert("Data retrieval successfull");
    var items = "";

    $.each(data, function (i, val) {
        var opt = $("<option></option>")
            .attr("value", val.Value)
            .text(val.Text);
        ddl.append(opt);
});

HTH