无法让 select2.js ajax 与 asp.net webform 一起使用
Posted
技术标签:
【中文标题】无法让 select2.js ajax 与 asp.net webform 一起使用【英文标题】:Can't get select2.js ajax working with asp.net webform 【发布时间】:2014-09-02 15:45:04 【问题描述】:我正在尝试让 ASP.NET 网络表单与 bootstrap 3 和 select2.js 插件一起使用。它不会返回任何错误或异常,它只是坐在那里看着我。这是页面:
<div id="divDepartmentEntry">
<label>Enter Name:<br /></label>
<select id="e1" style="width:300px"></select>
</div>
这里是javascript:
$(document).ready(function ()
$("#e1").select2();
);
$("#e1").select2(
minimumInputLength: 2,
ajax:
url: "Default_handler2.ashx",
cache: false,
dataType: 'json',
type: 'GET',
data: function (term, page)
return
q: term // search term
;
,
results: function (data, page)
return results: data ;
,
formatResult: format,
formatSelection: format
);
function format(item)
return item.tag;
在通用处理程序内部:
public void ProcessRequest (HttpContext context)
context.Response.ContentType = "text/plain";
string result = "[\"tag\":\"Smith\",\"id\":1,\"tag\":\"Brown\",\"id\":14]";
context.Response.Write(result);
我可以在打开的输入中输入文本,但它在 IE8(我知道,不要让我开始)或 Chrome 中什么都不做。有什么想法吗?
【问题讨论】:
尝试在 .ready 中包含对 .select2 的第二次调用。 【参考方案1】:尝试在 .ready 中包含对 .select2 的第二次调用:
$(document).ready(function ()
$("#e1").select2(
minimumInputLength: 2,
ajax:
url: "Default_handler2.ashx",
cache: false,
dataType: 'json',
type: 'GET',
data: function (term, page)
return
q: term // search term
;
,
results: function (data, page)
return results: data ;
,
formatResult: format,
formatSelection: format
);
);
您的处理程序还应使用 json 内容类型进行响应:
context.Response.ContentType = "application/json";
【讨论】:
谢谢@Hanlet。这让我大部分时间都在那里。我还从准备好的文档中删除了$("#e1").select2();
;令人困惑的是 select2。此外,我将 html 更改为针对隐藏输入而不是选择,并且它可以工作。以上是关于无法让 select2.js ajax 与 asp.net webform 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Select2.js 对从 Ajax 调用返回的数据进行多选结果?
如何在 select2.js v4.0 中显示 ajax 数据?