Select2 webforms在使用ajax“未找到结果”返回结果后未绑定
Posted
技术标签:
【中文标题】Select2 webforms在使用ajax“未找到结果”返回结果后未绑定【英文标题】:Select2 webforms not binding after returned result with ajax "no results found" 【发布时间】:2020-06-30 16:59:18 【问题描述】:我正在从后端以 json 格式返回研究项目的结果,但 select2 似乎无法附加它。 没有控制台错误。 如果有人可以提供帮助,这是我的代码!谢谢。
[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 );
这是我的前端代码
$("#<%=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 ;
);
【问题讨论】:
【参考方案1】:我找到了解决方案对于那些正在搜索此错误的人:
服务器端:
[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;
【讨论】:
以上是关于Select2 webforms在使用ajax“未找到结果”返回结果后未绑定的主要内容,如果未能解决你的问题,请参考以下文章