我试图通过一个非常简单的网络方法(仅用于测试)驱动 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) };
}
