我有一些數據,我的格式是這樣的:jQuery的自動完成格式化數據結果
// ... imagine populating a SqlDataReader with some results ...
var results = new StringBuilder();
while (reader.Read())
{
results.AppendFormat("{0}, {1}\n", reader["name"], reader["emailAddress"]);
}
return results.ToString();
我控制器操作很簡單:
public ActionResult Find(string q)
{
var users = Customer.Search(q);
return Content(users);
}
和我的觀點的JavaScript看起來像這樣:
$(document).ready(function() {
$("input#user").autocomplete('<%= Url.Action("Find", "Customer") %>', {
minChars: 2,
width: 500,
matchContains: true,
autoFill: false,
formatItem: function(row, i, max) {
return i + "/" + max + ": (" + row[0] + ") " + row[1];
},
formatMatch: function(row, i, max) {
return row[0];
},
formatResult: function(row) {
return row[1];
}
});
});
質疑
我正在使用Autocomplete from here。在這一點上,我遇到了一個問題,我無法將這兩個字段作爲單獨的值讀取。例如,如果行名稱字段是「John」,並且其電子郵件字段「[email protected]」,我希望這些字段分別顯示在行[0]和行1中。但是,他們目前在行[0]中獲得「John,[email protected]」並且行1未定義。
我需要改變什麼(無論是在JavaScript中還是在構建字符串的方法中)以獲取行[0]和行1以顯示正確的數據?
問題B
我寧願在指定行中的數據。通過這個我的意思是:
formatItem: function(row, i, max) {
return i + "/" + max + ": (" + row.name + ") " + row.email;
我掙扎了一段時間來格式化我的數據,所以這會發生,但我從來沒有成功。我如何格式化數據,以便AutoComplete能夠理解這一點?
這是我嘗試過的許多事情之一,但無法運作。你可能會更新你的答案,以顯示在這種情況下javascript如何工作? – 2009-05-29 20:02:50