我已经实现自动完成,并且选择了项目后,我在与标签与在文本框中的值的麻烦。当我在一个邮政编码型,i看到标签在下拉:JQuery用户界面自动完成与.net MVC:选择时,如何显示标签,但保存价值
但我选择一个之后,代替标签在文本框中示出,该值(这是ID,需要保存到数据库中)显示:
如何仍显示标签选中它后,但是当被保存形式,它通过ZipCodeID的领域?
这里是我的控制器方法:
public JsonResult FindZipCode(string term)
{
VetClinicDataContext db = new VetClinicDataContext();
var zipCodes = from c in db.ZipCodes
where c.ZipCodeNum.ToString().StartsWith(term)
select new { value = c.ZipCodeID, label = c.ZipCodeNum};
return this.Json(zipCodes, JsonRequestBehavior.AllowGet);
}
这是我的标记:
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete({
source: '<%= Url.Action("FindZipCode", "Customers") %>',
});
});
</script>
<div class="ui-widget"><input type="text" name="ZipCodeID" id="ZipCodeID" /></div>
编辑:这是我最后的工作代码:
控制器:
public JsonResult FindZipCode(string term)
{
VetClinicDataContext db = new VetClinicDataContext();
var zipCodes = from c in db.ZipCodes
where c.ZipCodeNum.ToString().StartsWith(term)
select new { value = c.ZipCodeID, label = c.ZipCodeNum};
return this.Json(zipCodes, JsonRequestBehavior.AllowGet);
}
和标记:
<script type="text/javascript">
$(document).ready(function() {
$("#ddZipCode").autocomplete({
source: '<%= Url.Action("FindZipCode", "Customers") %>',
select: function(event, ui) {
var zipCodeID = parseInt(ui.item.value, 1);
$("#ddZipCode").val(ui.item.label);
$("#ZipCodeID").val(ui.item.value);
return false;
}
});
});
</script>
<div class="ui-widget"><input type="text" name="ddZipCode" id="ddZipCode" /></div>
<%= Html.Hidden("ZipCodeID")%>
不是唯一的,足以不需要一个单独的ID邮政编码?我不能完全理解你为什么会想它,否则 – 2010-09-28 04:58:43
好点!当我最初构建数据库时,我对它很陌生。我将自己的邮政编码设置为具有自动递增的ID,并不是真的认为邮政编码本身是唯一的。我现在可以回去改变它,但效果会在其他地方变成其他许多变化。我可能应该这样做...... :)谢谢! – Ben 2010-09-28 14:34:14
没问题。你很了解事情并采取务实的态度。 – 2010-09-28 22:18:57