Skip to main content
 首页 » 编程设计

c#之Select2 With Ajax Asp.net 4.0 webmethod 请求

2024年02月13日43jirigala

我试图通过一个非常简单的网络方法(仅用于测试)驱动 select2 组合框,但似乎没有任何效果。我尝试过静态,没有静态 - 没有乐趣。

    [WebMethod] 
    [ScriptMethod(ResponseFormat=ResponseFormat.Json)] 
    public static String getResults(String q, String page_limit) 
    { 
        return "{'id':'1','text':'test'}"; 
    }  

这是 Jquery

$("#myHiddenField").select2({ 
            placeholder: "Search for item", 
            minimumInputLength: 3, 
            ajax: { 
                url: "mypage.aspx/getResults", 
                dataType: 'json', 
                type: "POST", 
                params: { 
                    contentType: 'application/json; charset=utf-8' 
                }, 
                quietMillis: 100, 
                data: function (term, page) {  
                    return JSON.stringify({ q: term, page_limit: 10 }); 
                }, 
                results: function (data) { 
                    return { results: data }; 
                } 
            } 
        }); 

我这辈子都弄不明白。有什么想法或建议吗?

编辑

我正在关注“SELECT2”插件的示例,更具体地说是“带远程数据部分的无限滚动”see here - 这对这个例子很好用。我显然遗漏了一些明显的东西。

请您参考如下方法:

我知道这是一个老问题,但我在谷歌上搜索了这个问题,发现了这个问题,并修复了它,认为其他谷歌搜索可能有同样的问题。

所以,要解决这个问题,请替换它;

public static String getResults(String q, String page_limit) 
{ 
    return "{'id':'1','text':'test'}"; 
} 

...用这个:

public static String getResults(String q, String page_limit) 
{ 
     return "[{ \"id\": \"1\", \"text\": \"test\" }]"; 
} 

另外,替换这个;

results: function (data) { 
        return { results: data }; 
} 

...有了这个:

 results: function (data) { 
      return { results: JSON.parse(data.d) }; 
 }