Asp.net 使用ajax返回结果后选择2个未绑定的webforms“;“未找到结果”;
我将从后端以json的形式返回所研究项目的结果,但select2似乎无法附加它。 没有控制台错误。 如果有人能帮忙,这是我的密码!谢谢Asp.net 使用ajax返回结果后选择2个未绑定的webforms“;“未找到结果”;,asp.net,ajax,drop-down-menu,webforms,jquery-select2,Asp.net,Ajax,Drop Down Menu,Webforms,Jquery Select2,我将从后端以json的形式返回所研究项目的结果,但select2似乎无法附加它。 没有控制台错误。 如果有人能帮忙,这是我的密码!谢谢 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static string GetResults(string q) { List<Select2Model> list = new List<Selec
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string GetResults(string q)
{
List<Select2Model> list = new List<Select2Model>();
//geting the data to be searched into a list
if (!(string.IsNullOrEmpty(q) || string.IsNullOrWhiteSpace(q)))
{
list = list.Where(x => x.text.ToLower().StartsWith(q.ToLower())).ToList();
}
return new JavaScriptSerializer().Serialize(new { items = list });
}
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共静态字符串GetResults(字符串q)
{
列表=新列表();
//将要搜索的数据获取到列表中
if(!(string.IsNullOrEmpty(q)| | string.IsNullOrWhiteSpace(q)))
{
list=list.Where(x=>x.text.ToLower().StartsWith(q.ToLower()).ToList();
}
返回新的JavaScriptSerializer().Serialize(新的{items=list});
}
这是我的前端代码
$("#<%=DDL_NAME.ClientID%>").select2({
//placeholder: "Search for item",
minimumInputLength: 3,
ajax: {
type: "POST",
url: '<%= ResolveUrl("~/page.aspx/GetResults") %>',
dataType: 'json',
data: function (params) {
return JSON.stringify({ q: params.term });
},
contentType: "application/json; charset=utf-8",
dataType: "json",
processResults: function (data) {
return { results: data.items };
}
}
});
$(“#”)。选择2({
//占位符:“搜索项目”,
最小输入长度:3,
阿贾克斯:{
类型:“POST”,
url:“”,
数据类型:“json”,
数据:函数(参数){
返回JSON.stringify({q:params.term});
},
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
processResults:函数(数据){
返回{results:data.items};
}
}
});
我为正在搜索此错误的用户找到了解决方案:
服务器端:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string GetResults(string q)
{
List<Select2Model> list = new List<Select2Model>();
//geting the data to be searched into a list
list = (from DataRow row in _cotalog.Rows
select new Select2Model
{
id = row["CODE"].ToString(),
text = row["LABEL"].ToString()
}).ToList();
if (!(string.IsNullOrEmpty(q) || string.IsNullOrWhiteSpace(q)))
{
list = list.Where(x => x.text.ToLower().Contains(q.ToLower())).ToList();
}
return new JavaScriptSerializer().Serialize(new { results = list, pagination = new { more = true } }); ;
}
$("#<%=DDL.ClientID%>").select2({
placeholder: "Search for item",
minimumInputLength: 3,
ajax:
{
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: '<%= ResolveUrl("~/page.aspx/GetResults") %>',
data: function (params) {
return JSON.stringify({ q: params.term });
},
processResults: function (data, page) {
//console.log(JSON.parse(data.d).results);
return { results: JSON.parse(data.d).results };
}
}
});
public class Select2Model
{
public string id { get; set; }
public string text { get; set; }
}