JSON Данные не рендеринга в раскрывании Kendo UI -- jquery поле с участием json поле с участием asp.net-mvc-4 поле с участием kendo-ui пол Связанный проблема

Json data not rendering in Kendo UI Dropdown


1
vote

проблема

русский

пытается сделать <код> Json Возвращенные данные в <Код> kendo Выпадающий список, но не рендеринг. Пожалуйста, найдите код Snippett. Я могу увидеть бдительную коробку. Я попробовал <код> JSON.parse(siteNameData) , но не повезло.

Вызов Ajax

 <код> $.ajax({     url: '../Report/GetSitesofSelectedClient',     type: "GET",     cache: false,     datatype: "json",     data: { "selectedClientCode": selectedClientCode },     contentType: "application/json",     async: false,     success: function(siteNameData) {         alert('hello');          $("#siteNamesDropDown").kendoDropDownList({             dataTextField: "text",             dataValueField: "value",             template: $("#CheckboxTemplate2").html(),             datasource: siteNameData,             placeholder: "Select...",             select: function(e) {                 e.preventDefault();             }         }).data("kendoDropDownList");          //PopulateSiteNamesDropDown(siteNamesReceived);      },      error: function(xhr, ajaxOptions, thrownError) {          ShowDialogError(xhr, 'High Chart Status Report');      } });   

контроллер

 <код>     public JsonResult GetSitesofSelectedClient(string selectedClientCode)     {         ViewBag.ShowReport = true;          var highChartModel = new HighChartViewModel();          var siteData = highChartModel.GetListOfSites(selectedClientCode);          return Json(new {siteData}, JsonRequestBehavior.AllowGet);      }   

Модель

 <код>  public string GetListOfSites(string clientCode)  {           SiteNameList = _serviceSessionManager.GetSiteListForClient(clientCode);          listOfSiteNames = new List<SiteStatusReportModel>();          foreach (Site siteName in SiteNameList)         {             var siteNameInfo = new SiteStatusReportModel             {                 text     = siteName.SiteName,                 value    = siteName.SiteCode,                 selected = false             };              listOfSiteNames.Add(siteNameInfo);         }          var siteNameJsonData = JsonHelper.ToJsonString(listOfSiteNames)         return siteNameJsonData;  }   
Английский оригинал

Trying to render the Json returned data to kendo drop down list, but not rendering. Please find the code snippett. I am able to see the alert box. I tried JSON.parse(siteNameData), but no luck.

AJAX CALL

$.ajax({     url: '../Report/GetSitesofSelectedClient',     type: "GET",     cache: false,     datatype: "json",     data: { "selectedClientCode": selectedClientCode },     contentType: "application/json",     async: false,     success: function(siteNameData) {         alert('hello');          $("#siteNamesDropDown").kendoDropDownList({             dataTextField: "text",             dataValueField: "value",             template: $("#CheckboxTemplate2").html(),             datasource: siteNameData,             placeholder: "Select...",             select: function(e) {                 e.preventDefault();             }         }).data("kendoDropDownList");          //PopulateSiteNamesDropDown(siteNamesReceived);      },      error: function(xhr, ajaxOptions, thrownError) {          ShowDialogError(xhr, 'High Chart Status Report');      } }); 

CONTROLLER

    public JsonResult GetSitesofSelectedClient(string selectedClientCode)     {         ViewBag.ShowReport = true;          var highChartModel = new HighChartViewModel();          var siteData = highChartModel.GetListOfSites(selectedClientCode);          return Json(new {siteData}, JsonRequestBehavior.AllowGet);      } 

MODEL

 public string GetListOfSites(string clientCode)  {           SiteNameList = _serviceSessionManager.GetSiteListForClient(clientCode);          listOfSiteNames = new List<SiteStatusReportModel>();          foreach (Site siteName in SiteNameList)         {             var siteNameInfo = new SiteStatusReportModel             {                 text     = siteName.SiteName,                 value    = siteName.SiteCode,                 selected = false             };              listOfSiteNames.Add(siteNameInfo);         }          var siteNameJsonData = JsonHelper.ToJsonString(listOfSiteNames)         return siteNameJsonData;  } 
</div
           

Список ответов

2
 
vote
vote
Лучший ответ
 

Вы не повторно ринилизировать выпадение каждый раз. Инициализируйте это только один раз. В вашем контроллере создайте список и верните это через JSON. Для сброса выпадающего раскрывающегосяда необходимо установить настроек данных, как это

 <код> var combobox = $("#siteNamesDropDown").data('kendoDropDownList'); if(combobox != null){     //set the datasource of the combo     combobox.dataSource.data(siteNameData);     //requery the drop down so it shows the new data     combobox.dataSource.query();     //reset the selected value     combobox.value(""); }   
 

you don't reinitialize the drop down every time. Initialize it only once. On your controller build a List and return that through json. To reset the dropdown you need to set the datasource like this

var combobox = $("#siteNamesDropDown").data('kendoDropDownList'); if(combobox != null){     //set the datasource of the combo     combobox.dataSource.data(siteNameData);     //requery the drop down so it shows the new data     combobox.dataSource.query();     //reset the selected value     combobox.value(""); } 
</div
 
 
         
         
0
 
vote

Вы Console.log (SiteNamedata)? Это возвращает правильный JSON? Может быть, Rexonse - это переменная INISDE SiteNamedata.d Также не уверен, почему вы устанавливаете асинхронитуру до False? Пожалуйста, установите его в True OE, либо удалите его.

Попробуйте этот код

 <код> $.ajax(                         {                             url: '../Report/GetSitesofSelectedClient',                             type: "GET",                             cache: false,                             datatype: "json",                             data: { "selectedClientCode": selectedClientCode },                             contentType: "application/json",                              success: function(siteNameData) {                                  alert('hello');                                  $("#siteNamesDropDown").kendoDropDownList({                                     dataTextField: "text",                                     dataValueField: "value",                                     template: $("#CheckboxTemplate2").html(),                                     datasource: JSON.parse(siteNameData.d),                                     placeholder: "Select...",                                     select: function(e) {                                         e.preventDefault();                                     }                                 }).data("kendoDropDownList");                                  //PopulateSiteNamesDropDown(siteNamesReceived);                             },                             error: function(xhr, ajaxOptions, thrownError) {                                  ShowDialogError(xhr, 'High Chart Status Report');                             }                         });   
 

Did you console.log(siteNameData)? Is it returning a proper json? May be the resonse is inisde variable siteNameData.d Also not sure why you set async property to false? Please set it to true oe either remove it.

Try out this code

$.ajax(                         {                             url: '../Report/GetSitesofSelectedClient',                             type: "GET",                             cache: false,                             datatype: "json",                             data: { "selectedClientCode": selectedClientCode },                             contentType: "application/json",                              success: function(siteNameData) {                                  alert('hello');                                  $("#siteNamesDropDown").kendoDropDownList({                                     dataTextField: "text",                                     dataValueField: "value",                                     template: $("#CheckboxTemplate2").html(),                                     datasource: JSON.parse(siteNameData.d),                                     placeholder: "Select...",                                     select: function(e) {                                         e.preventDefault();                                     }                                 }).data("kendoDropDownList");                                  //PopulateSiteNamesDropDown(siteNamesReceived);                             },                             error: function(xhr, ajaxOptions, thrownError) {                                  ShowDialogError(xhr, 'High Chart Status Report');                             }                         }); 
</div
 
 
 
 
0
 
vote

Это мой код dropdownlist. Убедитесь, что ваши поля DataTatext и DataValue правильно отображаются в зависимости от свойств.

 <код>  public JsonResult GetOpportunityListByAccount(Guid Id)     {         List<OpportunityViewModel> cpvm = new List<OpportunityViewModel>();                     cpvm = GetOpportunityListByAccount(Id);                      return Json(cpvm, JsonRequestBehavior.AllowGet);                 }     public List<OpportunityViewModel> GetOpportunityListByAccount(Guid Id)     {         List<OpportunityViewModel> oppVMList = new List<OpportunityViewModel>();         var oppList = new OrderManager().GetOpportunitiesByAccount(Id);           foreach (var op in oppList)         {             OpportunityViewModel opvm = new OpportunityViewModel();             opvm.OpportunityId = op.OpportunityId;             opvm.OpportunityName = op.OpportunityName;              oppVMList.Add(opvm);         }          return oppVMList;                }       @(Html.Kendo().DropDownListFor(x => x.FromOpportunity)                  .Name("OpportunityDDL")                            .DataTextField("OpportunityName")                         .DataValueField("OpportunityId")                                    .DataSource(source => {               source.Read(read =>                {                    read.Action("GetOpportunityListByAccount", "CrmIntegration")                         .Data("OnAdditionalData");                })                 . ServerFiltering(true);           })           //    .CascadeFrom("AdvertiserDDL")           .HtmlAttributes( new { style = "margin-left:13px; width: 275px;" })    )        

.data - это то, что вы собираетесь использовать для передачи параметра для контроллера. Обратите внимание, что моя функция GetopportunityListbyAccount принимает идентификатор в качестве параметра. И моя «Onadditionaldata» также возвращает параметр с именем ID . Они должны назвать то же самое на работу.

 <код> libraryA0  

Будьте осторожны, если вызов не работает, это может быть проблема типа данных. Я столкнулся с проблемой, когда мой контроллер ожидал GUID, используя .val (), который также был главным, но он не работал. Я должен был изменить свой контроллер, чтобы ожидать строки и сделать что-то вроде <код> libraryA1

 

This is My dropdownlist code. Make sure your DataText and DataValue fields are correctly mapped to the properties you are targeting.

 public JsonResult GetOpportunityListByAccount(Guid Id)     {         List<OpportunityViewModel> cpvm = new List<OpportunityViewModel>();                     cpvm = GetOpportunityListByAccount(Id);                      return Json(cpvm, JsonRequestBehavior.AllowGet);                 }     public List<OpportunityViewModel> GetOpportunityListByAccount(Guid Id)     {         List<OpportunityViewModel> oppVMList = new List<OpportunityViewModel>();         var oppList = new OrderManager().GetOpportunitiesByAccount(Id);           foreach (var op in oppList)         {             OpportunityViewModel opvm = new OpportunityViewModel();             opvm.OpportunityId = op.OpportunityId;             opvm.OpportunityName = op.OpportunityName;              oppVMList.Add(opvm);         }          return oppVMList;                }       @(Html.Kendo().DropDownListFor(x => x.FromOpportunity)                  .Name("OpportunityDDL")                            .DataTextField("OpportunityName")                         .DataValueField("OpportunityId")                                    .DataSource(source => {               source.Read(read =>                {                    read.Action("GetOpportunityListByAccount", "CrmIntegration")                         .Data("OnAdditionalData");                })                 . ServerFiltering(true);           })           //    .CascadeFrom("AdvertiserDDL")           .HtmlAttributes( new { style = "margin-left:13px; width: 275px;" })    )      

.Data is what your going to use to pass a parameter to the controller. Notice my GetOpportunityListByAccount function takes the Id as a parameter. And My "OnAdditionalData" also returns a parameter named Id. They gotta be called the same to work.

function OnAdditionalData() {             return {         Id: $("#AdvertiserDDL").val()    }; }       

Be careful if the call doesn't work it might be a data type issue. I've ran into the problem when my controller expected a Guid, using .val() which was also a guid but it didnt work. I had to change my controller to expect a string and do something like Id: "" + $("#AdvertiserDDL").val()

</div
 
 
     
     

Связанный проблема

0  Как изменить цвет фона в jQuery  ( How to change background color in jquery ) 
Я хочу исчезать цвет фона, когда фокусируется; <код> $(document).ready(function() { $('.skiplink').focusin(function(){ $('#skip...

-1  Что не так с этим кодом jQuery, его сумасшедшая? [закрыто]  ( What is wrong with this jquery code its driving my crazy ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт. Этот вопрос не соответствует Рекомендациям переполнения ...

0  Скрывая неупорядоченный список, когда у него нет элементов  ( Hiding an unordered list when it has no elements ) 
У меня есть проблема, которая кажется сначала, как общий язык No-Brainer и легкая задача. У меня есть плагин JavaScript на моей странице, который генерирует...

1  Добавление события onload для GridView  ( Adding an onload event for a gridview ) 
У меня есть одна сетка, вот HTML-код: <код> <table cellspacing="0" border="1" style="border-collapse:collapse;" id="grid1" rules="all"> <tbody><t...

0  в то время как цикл превышает каждый метод  ( While loop over takes the each method ) 
Я добавляю элемент на страницу, используя статический номер в соответствии с кликом пользователя. Таким образом, элемент имеет серийный номер в соответствии с...

2  Angulars + Bootstrap + Typeead + Ajax работает только в том случае, если я ставлю предупреждающую коробку, но только в Chrome  ( Angularjsbootstraptypeheadajax is working only if i put alert box but only in ) 
Я использую bootsrap typeead с angularjs, приведенным по этой ссылке http: //angular-ui.github. io / bootstrap / в моем контроллере <код> $scope.getUse...

0  Динамический расчет расстояния для маршрута  ( Dynamic distance calculation for route ) 
Я хочу реализовать форму, где вы вводите отправку и пункт назначения, а затем, используя API Google Maps JavaScript, он будет отображать расстояние в виде зна...

0  Как вы загружаете файл JavaScript в объем  ( How do you load a javascript file into a scope ) 
Я пытаюсь выяснить, как загрузить содержимое файла JavaScript в объем. Причина этого я хочу иметь возможность иметь возможности подключения и воспроизведения ...

0  jQuery: перечислять элементы после удаления  ( Jquery enumerate elements after deletion ) 
Вот упрощенная версия моей страницы: HTML <код> <div id="id-0" class="item">x</div> <div id="id-1" class="item">x</div> <div id="id-2" class="item">x</div...

1  Форма подписки Rapidmail перенаправляет после подписки электронной почты - MailChimp  ( Rapidmail subscription form redirect after email subscription mailchimp ) 
Я создаю веб-страницу, которая включает в себя очень простую форму подписки, в основном собирая адреса электронной почты, заинтересованные в продукте. Для это...

0  JavaScript цепи много функций  ( Javascript chaining many function ) 
newbe в JavaScript, Я 4 функции, скажем: <код> function funct1(){ //dosomething(); } function funct2(){ //dosomething(); } function funct3(){ ...

1  Делая сова карусели жидкость / работа в процентах?  ( Making owl carousel liquid work in percentages ) 
У меня установлена ​​сова карусель, и она работает очень хорошо. Я доволен плагином, но что меня беспокоит, это то, что он не масштабируется с видом на просмо...

6  Нет прокрутки после закрытия лайтбокса (Blueimp)  ( No scrolling after closing lightbox blueimp ) 
Я построил свой собственный сайт и хотел добавить разные галереи, поэтому я попробовал Blueimp. Он отлично работает, но когда я закрываю лайтбокс, я больше не...

1  Удалить таблицу TR при сохранении AddClass  ( Remove table tr while maintaining addclass ) 
Хорошо, у меня есть таблица TR, которая удаляется, когда вы нажимаете кнопку. Я использую Animate.css и хотел бы добавить класс после того, как мой запрос AJA...

0  Нужна помощь в создании массива JavaScript от заданных объектов  ( Need help building a javascript array from given object values ) 
Это объект, который у меня есть. <код> var MyObject = { 'stop1-start': "0", 'stop1-color': "#0074a2", 'stop2-start': "32", 'stop2-color...

Связанный проблема

0  Как изменить цвет фона в jQuery 
-1  Что не так с этим кодом jQuery, его сумасшедшая? [закрыто] 
0  Скрывая неупорядоченный список, когда у него нет элементов 
1  Добавление события onload для GridView 
0  в то время как цикл превышает каждый метод 
2  Angulars + Bootstrap + Typeead + Ajax работает только в том случае, если я ставлю предупреждающую коробку, но только в Chrome 
0  Динамический расчет расстояния для маршрута 
0  Как вы загружаете файл JavaScript в объем 
0  jQuery: перечислять элементы после удаления 
1  Форма подписки Rapidmail перенаправляет после подписки электронной почты - MailChimp 
0  JavaScript цепи много функций 
1  Делая сова карусели жидкость / работа в процентах? 
6  Нет прокрутки после закрытия лайтбокса (Blueimp) 
1  Удалить таблицу TR при сохранении AddClass 
0  Нужна помощь в создании массива JavaScript от заданных объектов 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.