Я пытаюсь сделать каскад выпадающих списков, в которых изменения в странах получат состояния и свяжутся с другим выпадающим списком, в котором отображаются состояния. Я проверил документацию, доступную на веб-сайте kendoui, где они задокументировали способ каскадирования с использованием его событий (CascadeFrom и т. Д.), Но я не хочу этого делать. Поскольку это двойная поездка в базу данных. Сначала после загрузки страницы она связывает страны (Calls database и get countries), а затем связывает состояния после изменения страны.Каскадирование Kendo Dropdownlist с объектом json
Но я сделал по-другому. Я связываю страны Dropdownlist на загрузке страницы, поэтому я сохранил одну поездку, которая была сделана в базу данных для загрузки стран после загрузки страницы, но мне интересно, могу ли я назвать изменение выпадающего списка стран следующим образом, а затем связать состояния 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; }
Я успешно переплетены оба выпадающие, сейчас я хочу сделать каскадный, для которого я написал ниже сценарий в моей странице просмотра:
И функция «GetStatesForCountry» уже определена в контроллере выше, но я смущен тем, как использовать возвращаемый объект json и привязать список kendodropdown, который показывает «состояния».
Hi. Он начал связывать новые данные (состояния), которые появляются после смены страны, но, к сожалению, она не указана во всех вариантах. У вас есть идея об этом? – Sweetie
Я могу сделать это, выполнив приведенный ниже код. $ .post ("/ Home/GetStatesForCountry", {CountryId: val}, function (Response) { // var States = $ ("# State"). Data ("kendoDropDownList"); //States.setDataSource (Response.JsonStates); $ ("# State"). KendoDropDownList ({ dataTextField: "StateName", dataValueField: "Id", dataSource: Response.JsonStates }); }); – Sweetie
@sweetie nice one, извините, только что просмотрел ваши комментарии сейчас. :) – hutchonoid