在下拉列表中使用ajax获取select2刷新数据

时间:2016-07-25 10:58:07

标签: asp.net-mvc-5 asp.net-ajax jquery-select2

我使用以下JavaScript来使用select2 https://select2.github.io/

填充下拉列表

它工作正常,并在第一次加载页面时填充列表。 从那时起,即使添加数据也不刷新列表,因为它只调用一次AJAX。即使我重新加载页面,下拉列表也不会刷新,并且不会触发AJAX调用(除非我关闭并重新打开浏览器,然后激活AJAX调用)

每次下拉打开时,有没有办法进行ajax调用。我尝试了.on(" select2-open")选项,但没有运气。

抱歉JavaScript不是我所知道的。

$("#Location").select2({
            placeholder: "Select a known location", // Placeholder text
            allowClear: true, //Allows deselection of chosen address
            ajax: {
                url: '/AlertInterface/NewAlertLocations', // Where we want the ajax to call
                dataType: 'json', // The datatype we are expecting to be returned
                type: "GET", //Just a get method
                //Data: allows us to pass a parameter to the controller
                data: function (query) {
                    console.log(query)
                    return { search: query.term }
                },
                //processes the results from the JSON method and gives us the select list
                processResults: function (data) {
                    console.log(data)
                    return {
                        results: JSON.parse(data)
                    };
                }
            }
        });

修改

我确实尝试使用

$("#Location").on("select2:open", function () { $("#Location").select2(); })

但这没有任何帮助。 : - (

1 个答案:

答案 0 :(得分:0)

您的代码中存在语法错误。 请检查以下代码,

$("#Location").select2({
            placeholder: "Select a known location", // Placeholder text
            allowClear: true, //Allows deselection of chosen address
            ajax: {
                url: '/AlertInterface/NewAlertLocations', // Where we want the ajax to call
                dataType: 'json', // The datatype we are expecting to be returned
                type: "GET", //Just a get method
                //Data: allows us to pass a parameter to the controller
                data: function (query) {
                    console.log(query)
                    return { search: query.term }
                },
                //processes the results from the JSON method and gives us the select list
                processResults: function (data) {
                    console.log(data)
                    return {
                        results: JSON.parse(data)
                    };
                }
            }
    });