2015-08-05 6 views
0

У меня есть одна сетка кендо, где я звоню динамически. Ниже приведен код:некоторые путаницы о сетке kendo сетки

<div id="example"> 
 
    <div id="grid"></div> 
 
    <script> 
 
     $(document).ready(function() { 
 

 

 
      var _dataSource = new kendo.data.DataSource({ 
 
       
 
       transport: { 
 
          read: { 
 
           type: "POST", 
 
           url: "/Dashboard/GetAttritionEmployeeDetailsWithColl", 
 
           dataType: "json", 
 
           contentType: "application/json" 
 
          }, 
 
          parameterMap: function (options, operation) { 
 
           return JSON.stringify(options); 
 
          } 
 
         }, 
 
         schema: { 
 
          data: "Data", 
 
          errors: "Errors", 
 
          total: "Total", 
 
          model: { 
 
           fields: { 
 
            
 
            Department: { type: "string" }, 
 
            
 
           } 
 
          } 
 
         }, 
 
         pageSize: 20, 
 
         serverPaging: true, 
 
         serverFiltering: true, 
 
         serverSorting: true 
 
      }); 
 

 
      
 

 
      $("#grid").kendoGrid({ 
 
       dataSource:_dataSource, 
 
       height: 550, 
 
       filterable: true, 
 
       sortable: true, 
 
       pageable: true, 
 
       columns: [{ 
 
        
 
         field: "Department", 
 
         title: "Department" 
 
       } 
 
     
 
       ] 
 
      }); 
 
     }); 
 
    </script> 
 
</div>

и здесь функция используется в контроллере приборной панели

public List<Entity.EmployeeHeadCountResponse> GetAttritionEmployeeDetailsWithColl(Entity.DashboardEmpRequest request) 
 
     { 
 
      try 
 
      { 
 
       employeeHeadCountResponseList = new List<Entity.EmployeeHeadCountResponse>(); 
 
       DashboardServiceAgent client = new DashboardServiceAgent(); 
 
       request.FlapName = "Attrition"; 
 
       request.LoggedInStaffId = "33019"; 
 
       request.RoleName = "Administrator"; 
 
        
 

 
       client.GetDashboardEmpDetailsWithBytes(request, (s, e) => 
 
       { 
 

 
        if (e.GetType() == typeof(Service.GetDashboardEmpDetailsWithBytesCompletedEventArgs)) 
 
        { 
 
         Service.GetDashboardEmpDetailsWithBytesCompletedEventArgs err = (Service.GetDashboardEmpDetailsWithBytesCompletedEventArgs)e; 
 

 
         if (err.Error == null && err.Result != null) 
 
         { 
 
          
 
          List<Service.GenericCollection> GenColl = new List<Service.GenericCollection>(); 
 
          byte[] compress = err.Result; 
 
          GenColl = PayloadHelper.CompressedBytesToObject(compress) as List<Service.GenericCollection>; 
 
          HierarchyCollection collection = new HierarchyCollection(GenColl); 
 
          
 
          ServiceResult = GenColl; 
 
          
 
          EmpCollection = collection; 
 
          var mylist = EmpCollection.ToList(); 
 
          
 
          if (EmpCollection != null) 
 
          { 
 
           dict = new HierarchyCollection().FillForCategoryValues(GenColl); 
 
           Employee_Read(request2); 
 
          } 
 
          
 
          
 
         } 
 
         
 
        } 
 
       } 
 

 
      ); 
 
       
 
      } 
 
      catch (System.Exception ex) 
 
      { 
 
       Common.InsertLogging(ex); 
 
      } 
 
      return employeeHeadCountResponseList; 
 
      
 
     }

так в этой функции он получает возвратный данные из wcf-сервисов, так что это асинхронный сервис сначала он получает нулевое значение, а второй раз получает значение, поэтому всякий раз, когда он получает данные, я вызываю функцию Employee_Read внутри этой функции. но не может отображать данные в сетке кендо. Теперь мой вопрос здесь, мне нужно вызвать главную функцию, которая возвращает json ??

+0

Пытались ли вы 'общественного ActionResult GetAttritionEmployeeDetailsWithColl ([DataSourceRequest] DataSourceRequest запрос)' и в конце метода 'возврата Json (employeeHeadCountResponseList.ToDataSourceResult (запрос)) ; '? – chiapa

ответ

1

Вместо использования

public List<Entity.EmployeeHeadCountResponse> GetAttritionEmployeeDetailsWithColl(Entity.DashboardEmpRequest request) 

использования

public ActionResult GetAttritionEmployeeDetailsWithColl() 

и возврат Plain Json вместо kendoDataSourceResult, как уры уже преобразовав его в кендо источника данных в яваскрипта стороны Вы должны использовать

return Json(employeeHeadCountResponseList) 

этого более чем достаточно

Пожалуйста, отметьте, как ответ и голосовать, если это поможет вам

+0

Это работает для меня спасибо – Vikash

Смежные вопросы