我正在尝试进行一系列下拉菜单,其中各国的变化将获得状态并绑定到显示州的另一个下拉列表.
我查看了kendoui网站上提供的文档,其中记录了级联的方式
使用它的事件(CascadeFrom等等.)但我不想这样做.
因为它是数据库的双重旅行.首先加载页面后,它绑定国家(呼叫数据库和获取国家),然后
它在国家改变后对国家具有约束力.
我查看了kendoui网站上提供的文档,其中记录了级联的方式
使用它的事件(CascadeFrom等等.)但我不想这样做.
因为它是数据库的双重旅行.首先加载页面后,它绑定国家(呼叫数据库和获取国家),然后
它在国家改变后对国家具有约束力.
但我以不同的方式做了.我绑定国家下拉列表
在页面加载,所以我保存了一个数据库,用于加载
页面加载后的国家,但我想知道如果我可以调用更改
各国以下列方式下拉,然后通过json对象绑定状态.
这是在视图页面中成功绑定的国家/地区下拉列表
@(Html.Kendo().DropDownListFor(model => model.Country) .DataTextField("Text") .DataValueField("Value") .BindTo(Model.Countriestemp) )
以下是国家名单,将根据各国下拉列表的变化记录.
@(Html.Kendo().DropDownListFor(model => model.State) .DataTextField("Text") .DataValueField("Value") .BindTo(Model.States))
对于绑定国家和页面加载状态,我已在控制器中完成此操作.
public class HomeController : Controller { public ActionResult Registration() { RegistrationModel Model = new RegistrationModel(); Model.Countriestemp = new SelectList(ObjService.GetCountries(),"CountryID","Country_Name"); Model.States = new SelectList(ObjService.GetStates(),"Id","StateName"); return View(Model); } public JsonResult GetStatesForCountry(string CountryId) { RegistrationService ObjService = new RegistrationService(); var StatesList =ObjService.GetStatesForCountries(Convert.ToInt32(CountryId)); return Json(new { JsonStates = StatesList }); } }
这是我的模特::
public SelectList Countriestemp { get; set; } public SelectList States { get; set; }
我已经成功绑定了两个下拉列表,现在我想在我的视图页面中执行下面脚本编写的级联:
$(document).ready(function () { $("#Country").change(function () { var val = $("#Country").val(); $.post("/Home/GetStatesForCountry",{ CountryId: val },function (Response) { var States = $("#State").data("kendoDropDownList"); }); }); });
并且函数“GetStatesForCountry”已在上面的控制器中定义,但我对如何使用返回的json对象并绑定显示“状态”的kendodropdownlist感到困惑.
解决方法
您需要获取状态下拉列表,然后设置从其返回的数据源,如下所示:
var dropdownlist = $("#State").data("kendoDropDownList"); dropdownlist.setDataSource(Response.JsonStates);
更多信息:
http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#methods-setDataSource
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。