我有一些数据,我的格式是这样的: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