<script>
$(document).ready(function() {
var matchfield = "<%=MatchField %>"
var MatchFieldAlias = "<%=MatchFieldAlias %>";
var len = matchfield.split(',').length;
var dbfield = "<%=DBField %>";
var tablename = "<%=TableName %>";
var DisplayItemField = "<%=DisplayItemField %>";
var SaveField = "<%=SaveField %>"; var url = '<%=ResolveUrl("~/Ajax/AjaxHandler.aspx") %>';
$("#txtValue").autocomplete(url, {
minChars: 0,
matchSubset: true,
dataType: "json",
extraParams: { matchfield: matchfield, dbfield: dbfield, tablename: tablename },
matchContains: true,
max: 10000,
width: $("#txtValue").width() * len,
parse: function(data) {
//alert(data);
var obj = data;
var rows = [];
for (var i = 0; i < obj.length; i++) { rows[rows.length] = {
data: obj[i], //这里data是对象数组
value: obj[i].id,
result: obj[i].val
}; }
return rows;
}, formatItem: function(row, i, max) {
var matchfieldarr = matchfield.split(',');
var MatchFieldAliasarr = MatchFieldAlias.split(',');
var len = matchfieldarr.length;
var str = ""; for (var i = 0; i < len; i++) {
str += " " + MatchFieldAliasarr[i] + ":" + row[matchfieldarr[i]]; }
str = str.substr(1);
// return row[DisplayItemField];
return str;
},
formatMatch: function(row, i, max) { var match = matchfield.split(',');
var str = "";
for (var i = 0; i < match.length; i++) {
str += " " + row[match[i]];
} str = str.substr(1); return str;
},
formatResult: function(row) {
//alert(row[DisplayItemField]);
return row[DisplayItemField];
}
}); $("#txtValue").result(function(event, data, formatted) {
$("#txtValue").next().remove();
var id = data[SaveField];
var name = data[DisplayItemField];
$("#txtValue").val(name);
var html = "<input type='hidden' value='" + id + "' name='<%=ClientHiddenName %>' id='<%=ClientHiddenName %>' />";
$("#txtValue").after(html) }); });
</script>
以上是代码,我是通过传url 即时检索的 比如 ,我检索用户表,我输入用户名“张” 就能在下拉框中显示姓张的所有人,现在有个问题就是:如果后台返回时json数据不多的话 会正常,如果数据量大 就出不来数据 请达人们指点!!
$(document).ready(function() {
var matchfield = "<%=MatchField %>"
var MatchFieldAlias = "<%=MatchFieldAlias %>";
var len = matchfield.split(',').length;
var dbfield = "<%=DBField %>";
var tablename = "<%=TableName %>";
var DisplayItemField = "<%=DisplayItemField %>";
var SaveField = "<%=SaveField %>"; var url = '<%=ResolveUrl("~/Ajax/AjaxHandler.aspx") %>';
$("#txtValue").autocomplete(url, {
minChars: 0,
matchSubset: true,
dataType: "json",
extraParams: { matchfield: matchfield, dbfield: dbfield, tablename: tablename },
matchContains: true,
max: 10000,
width: $("#txtValue").width() * len,
parse: function(data) {
//alert(data);
var obj = data;
var rows = [];
for (var i = 0; i < obj.length; i++) { rows[rows.length] = {
data: obj[i], //这里data是对象数组
value: obj[i].id,
result: obj[i].val
}; }
return rows;
}, formatItem: function(row, i, max) {
var matchfieldarr = matchfield.split(',');
var MatchFieldAliasarr = MatchFieldAlias.split(',');
var len = matchfieldarr.length;
var str = ""; for (var i = 0; i < len; i++) {
str += " " + MatchFieldAliasarr[i] + ":" + row[matchfieldarr[i]]; }
str = str.substr(1);
// return row[DisplayItemField];
return str;
},
formatMatch: function(row, i, max) { var match = matchfield.split(',');
var str = "";
for (var i = 0; i < match.length; i++) {
str += " " + row[match[i]];
} str = str.substr(1); return str;
},
formatResult: function(row) {
//alert(row[DisplayItemField]);
return row[DisplayItemField];
}
}); $("#txtValue").result(function(event, data, formatted) {
$("#txtValue").next().remove();
var id = data[SaveField];
var name = data[DisplayItemField];
$("#txtValue").val(name);
var html = "<input type='hidden' value='" + id + "' name='<%=ClientHiddenName %>' id='<%=ClientHiddenName %>' />";
$("#txtValue").after(html) }); });
</script>
以上是代码,我是通过传url 即时检索的 比如 ,我检索用户表,我输入用户名“张” 就能在下拉框中显示姓张的所有人,现在有个问题就是:如果后台返回时json数据不多的话 会正常,如果数据量大 就出不来数据 请达人们指点!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货