我正在 mvc3 中处理一个带有 2 个字段的小表单,1 个用于帐户代码,第二个用于帐户描述。
我使用 jquery 自动完成文本框从 sql server 2008 r2 数据库中的帐户代码字段中获取帐户代码和描述的数据,但它不会在文本框中正确显示值。
下面是我的代码。
$(function () {
$("#AcCode").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Home/AutocompleteSuggestions", type: "POST", dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.split('-')[0], value: item.split('-')[1] }
}))
}
})
},
minLength: 1,
select: function (event, ui) {
if (ui.item) {
alert("You picked" + ui.item.label + "' with a value of " + ui.item.value);
$("#AcCode").val(ui.item.label),
$("#Descrip").val(ui.item.value);
}
}
});
});
它在帐户代码字段中显示描述,而在描述字段中不显示任何内容。帮我解决这个问题。我想在描述字段中显示描述,在帐户代码字段中显示帐户代码。
从数据库中获取数据的函数 public List GetAutoCompDataDAL(string Acode) {
List<string> result = new List<string>();
using (SqlConnection con = new SqlConnection(CONNECTION_STRING))
{
using (SqlCommand cmd = new SqlCommand("select AcCode,Descrip from Account where AcCode like '%'+@AcCode+'%' order by AcCode asc", con))
{
con.Open();
cmd.Parameters.AddWithValue("@AcCode", Acode);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
result.Add(string.Format("{0}-{1}", dr["AcCode"].ToString(), dr["Descrip"].ToString()));
}
con.Close();
return result;
//return result1;
}
}
}