像標題中描述的那樣,我得到了讓jqueryUI自動完成Widget工作的一個小問題。asp.NET jqueryUI自動完成
這聽起來很愚蠢,但我m hanging the whole day getting that thing solved, but i didn
噸。我已經開發了幾年C#,現在正在努力,因爲一個月左右...,用asp和jquery開發。爲了顯示,我搜索了網頁,特別是stackoverflow,並試圖讓它運行。
確定這裏的代碼。
定義文本框:
<asp:TextBox ID="txtSearchbox"
style="float:left;padding:5px 1px 5px 1px;" runat="server" >
</asp:TextBox>
自動完成jQuery腳本部分:
<script type="text/javascript">
$(document).ready(function() {
$('#txtSearchbox').autocomplete({
source: function (request, response) {
//console.log(request.term);
$.ajax
({
url: "AutoComplete.asmx/GetSearchInfo",
data: "{ 'prefixText': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) {
//console.log(data.toString());
//alert(data.toString());
return data;
},
success: function (data) {
// console.log(data.d.toString());
response($.map(data.d, function (item) {
// console.log(item.Isin)
// console.log(item.Name)
return
{
label: item.Name.toString()
value: item.Name.toString()
}
}));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
minLength: 2
});
});
</script>
的AutoComplet.asmx:
[WebMethod]
public List<SearchObject> GetSearchInfo(string prefixText)
{
var seo = new SearchObject();
var getSeo = staticList.getSEOlist().Where(str => str.SearchString.ToLower().Contains(prefixText.ToLower()));
return getSeo.ToList();
}
爲了完整起見,CSS:
/*AutoComplete flyout */
.autocomplete_completionListElement
{
margin:0px!important;
background-color:#ffffff;
color:windowtext;
border:buttonshadow;
border-width:1px;
border-style:solid;
cursor:'default';
overflow:auto;
height:200px;
font-family:Tahoma;
font-size:small;
text-align:left;
list-style-type:none;
padding: 5px 5px 5px 5px;
}
/* AutoComplete highlighted item */
.autocomplete_highlightedListItem
{
background-color:#ffff99 ;
color:black;
padding:0px;
}
/* AutoComplete item */
.autocomplete_listItem
{
background-color:window;
color:windowtext;
padding:0px;
}
如果你需要更多的,請告訴我。
調試行被註釋掉。
如果我檢查jquery部分我得到我想要的數據,但它不會顯示在txtsearch。 我真的不明白自動完成jquerUI方法如何顯示該列表,但編碼應該是正確的。
什麼是從你的Web服務方法的響應是什麼樣子? (如發送給客戶端的JSON編碼數據) –
{「d」:[{「__ type」:「SearchObject」,「Nr1」:「58155」,「nr2」:「E58155」,「Name」: 「XX Name」,「SearchString」:「58155 XX Name E58155」}]} - 但沒關係,它是一個JavaScript特性 - 查看最後一個答案,將代碼結構稍微改變一點,一切正常,真的有線。 –