gpt4 book ai didi

asp.net - 带有 ASP.NET Web 服务的 jQuery AutoComplete (jQuery UI 1.8rc3)

转载 作者:行者123 更新时间:2023-12-02 18:51:39 25 4
gpt4 key购买 nike

目前,当从 .ashx 处理程序返回 XML 时,我可以使用此版本的自动完成控件。 xml 如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<States>
<State>
<Code>CA</Code>
<Name>California</Name>
</State>
<State>
<Code>NC</Code>
<Name>North Carolina</Name>
</State>
<State>
<Code>SC</Code>
<Name>South Carolina</Name>
</State>

自动完成代码如下所示:

    $('.autocompleteTest').autocomplete(
{
source: function(request, response) {
var list = [];
$.ajax({
url: "http://commonservices.qa.kirkland.com/StateLookup.ashx",
dataType: "xml",
async: false,
data: request,
success: function(xmlResponse) {
list = $("State", xmlResponse).map(function() {
return {
value: $("Code", this).text(),
label: $("Name", this).text()
};
}).get();
}
});
response(list);
},
focus: function(event, ui) {
$('.autocompleteTest').val(ui.item.label);
return false;
},
select: function(event, ui) {
$('.autocompleteTest').val(ui.item.label);
$('.autocompleteValue').val(ui.item.value);
return false;
}

});

出于各种原因,我宁愿调用 ASP.NET Web 服务,但我无法让它工作。要切换到服务(我正在执行本地服务以保持简单),自动完成代码的开头是:

    $('.autocompleteTest').autocomplete(
{
source: function(request, response) {
var list = [];
$.ajax({
url: "/Services/GeneralLookup.asmx/StateList",
dataType: "xml",

此代码位于站点根目录的页面上,GeneralLookup.asmx 位于名为 Services 的子文件夹中。但 Web 服务中的断点永远不会被命中,并且不会生成自动完成列表。如果有什么不同的话,来自 asmx 的 XML 是:

<?xml version="1.0" encoding="utf-8" ?> 
<string xmlns="http://www.kirkland.com/"><State> <Code>CA</Code> <Name>California</Name> </State> <State> <Code>NC</Code> <Name>North Carolina</Name> </State> <State> <Code>SC</Code> <Name>South Carolina</Name> </State></string>

功能等效,因为我从未在映射代码中使用根节点的名称。我没有在 jQuery 文档中看到任何有关从此控件调用 .asmx 服务的内容,但 .ajax 调用就是 .ajax 调用,对吗?

我尝试了各种不同的 .asmx (~/Services/) 路径,甚至将服务移动到同一路径中以消除这些问题。两者都没有运气。

有什么想法吗?

最佳答案

我通过使用 JSON 获得了与 .asmx 一起使用的自动完成功能。这是我所做的一个例子:

JavaScript:

$("#tbNameFilter").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Services/AutocompleteService.asmx/Aoi_Autocomplete",
data: "{ 'q': '" + request.term + "', 'limit': '10' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.Name,
value: item.Name
}
}))
}
});
},
minLength: 1
});

网络服务:

[WebMethod]
public List<FAD_Aoi> Aoi_Autocomplete(String q, int limit)

关于asp.net - 带有 ASP.NET Web 服务的 jQuery AutoComplete (jQuery UI 1.8rc3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2471166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com