Visual Studio 2012
MVC 5.1.1
ASP.Net Razor 3.1.1
bootstrap 3.1.1
jQuery 2.1.0
json.Net 6.0.1
Web优化1.1.3
Webgrease 1.6.0
等 - 大多数新的扩展等
我在一个剃刀局部视图中有一个带有Telerik MVC KendoUI ComboBoxFor ComboBoxes的MVC Web应用程序:
@model HTPortal.ViewModels.ClientInquiryViewModel
@using System.Web.UI.WebControls
@using Kendo.Mvc.UI
<div class="form-group">
@Html.LabelFor(model => model.AddressState, new { @class = "control-label col-sm-2
col-md-2 col-lg-2" })
<div class="col-sm-5 col-md-5 col-lg-5">
@(Html.Kendo().ComboBoxFor(model => model.AddressState)
.Placeholder("Select Province...")
.DataTextField("ProvinceName")
.DataValueField("ProvinceName")
.Suggest(true)
.BindTo(Model.Provinces)
)
</div>
</div>
将数据加载到组合框中 - 一切正常。
在父剃刀页面中,在@using(Html.BeginForm())块之后,我有:
@section Scripts
{
<script type="text/javascript">
$(document).ready(function () {
$.getJSON("http://smart-ip.net/geoip-json?callback=?", function (data) {
alert(data.region);
//$("#AddressCity").val(data.city);
$("#AddressState").val(data.region);
//$("#AddressCountry").val(data.countryName);
});
});
</script>
}
在第一页加载时,警报会触发,我会在警报中看到我的省/州。 但是,在刷新页面后,我的名为AddressState的Combobox才会被填充。
我已经阅读了类似问题的各种其他帖子,但没有窗口加载或初始化或任何工作。
事实上,在IE和Chrome中 - 我得到的只是警告对话框 - 字段永远不会被填充。
帮助...
如何在第一次调用页面时让这个jQuery填充该字段?
答案 0 :(得分:0)
我没有正确访问Kendo UI组件......
$(document).ready(function () {
$.getJSON("http://smart-ip.net/geoip-json?callback=?", function (data) {
$("#AddressCity").data("kendoComboBox").value(data.city);
$("#AddressState").data("kendoComboBox").value(data.region);
$("#AddressCountry").data("kendoComboBox").value(data.countryName);
});
});
这有效!