We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Issue with Data Manager not calling WebAPI

Thread ID:

Created:

Updated:

Platform:

Replies:

140831 Nov 9,2018 12:10 AM UTC Nov 9,2018 06:08 AM UTC Angular - EJ 2 1
loading
Tags: Grid
Ameet
Asked On November 9, 2018 12:10 AM UTC

Here is my code on home.component.ts -
import { Component, OnInit, ViewChild } from '@angular/core';
import { DataManager, Query, UrlAdaptor, WebApiAdaptor, ODataAdaptor } from '@syncfusion/ej2-data';
import { GridComponent, EditService, ToolbarService, PageService, ColumnChooserService, EditSettingsModel, ToolbarItems } from '@syncfusion/ej2-ng-grids';

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  providers: [ToolbarService, EditService, PageService, ColumnChooserService]
})
export class HomeComponent implements OnInit {

  public title: string = "Manage Client Payment Options";
  public data: Object[];
  public dataManager: DataManager;
  @ViewChild('grid')
  public grid: GridComponent;
  public editSettings: EditSettingsModel;
  public toolbar: ToolbarItems[];
  public pageSettings: Object;
  ngOnInit(): void {
    console.log("This is testing");
    this.dataManager = new DataManager({
      //url: '/api/Payment',
      url: '/api/Payment',
      adaptor: new WebApiAdaptor
    });
    this.editSettings = { allowEditing: true, allowAdding: false, allowDeleting: false, mode: 'Normal' };
    this.toolbar = ['Edit', 'Update', 'Cancel', 'ColumnChooser'];
    //this.pageSettings = { pageCount: 5 };


  }
}

Here is my Web API Code -
[HttpGet()]
        public ActionResult Get()
        {
            List<ClientInfo> clientPaymentInfos = new List<ClientInfo>();
            Int32 intCnt = 0 ;
            DataTable dtPaymentInfo = new DataTable();
            using (SqlConnection conn = new SqlConnection(_connString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = conn;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "pr_GetAllClientInfo";
                    SqlDataReader dr = cmd.ExecuteReader();
                    dtPaymentInfo.Load(dr);
                    intCnt = dtPaymentInfo.Rows.Count;
                    foreach(DataRow dRow in dtPaymentInfo.Rows)
                    {
                        ClientInfo clientInfo = new ClientInfo();
                        clientInfo.clientNumber = dRow["ClientNumber"].ToString();
                        clientInfo.clientName = dRow["ClientName"].ToString();
                        clientInfo.relatedClientNumber = dRow["RelatedClientNumber"].ToString();
                        clientInfo.allowACHProcessing = (Boolean)dRow["AllowACHProcessing"];
                        clientInfo.allowCCProcessing = (Boolean)dRow["AllowCCProcessing"];
                        clientPaymentInfos.Add(clientInfo);
                    }
                }
            }
            var result = new { count = intCnt, result = clientPaymentInfos };
            return Ok(result);
        }

But whenever I try to run and check the browser it does not call the Web API at all. If I try it separately it does work but cannot call from the data manager. But I get the following error -
core.js:1448 ERROR TypeError: Cannot read property 'length' of undefined
    at WebApiAdaptor.UrlAdaptor.getRequestQuery (adaptors.js:474)
    at WebApiAdaptor.UrlAdaptor.processQuery (adaptors.js:435)
    at DataManager.executeLocal (manager.js:116)
    at eval (manager.js:164)
    at ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:4736)
    at ZoneDelegate.invokeTask (zone.js:420)
    at Zone.runTask (zone.js:188)
    at ZoneTask.invokeTask (zone.js:496)
    at ZoneTask.invoke (zone.js:485)
defaultErrorLogger @ core.js:1448

Any help is greatly appreciated. My old projects still work. Not sure what the new version of .NET core is having issues.

Venkatesh Ayothi Raman [Syncfusion]
Replied On November 9, 2018 06:08 AM UTC

Hi Ameet, 
 
Thanks for using Syncfusion products. 
 
We have tried to reproduce the issue at our end with latest Essential JavaScript 2 version but it is unsuccessful. We have prepared a simple sample based on your code example. Please refer to the below sample link. 


Could you please share the below details that will be helpful for us to provide a better solution as early as possible. 
  1. Share your Essential JavaScript 2 Version and ASP.NET CORE version.
  2. Share your Grid html code.
  3. Please check issue with latest Essential JavaScript 2 Version
  4. Could you please check whether the issue is due to serialization problem in your CORE application . If yes you can overcome this serialization problem[camel case] by adding the JsonOutputFormatter options under the Startup.cs file. JsonOutputFormatter is a TextOutputFormatter for JSON content. Please refer the sample below,
Startup.cs   
public void ConfigureServices(IServiceCollection services) 
        { 
            // Add framework services. 
            services.AddMvc().AddJsonOptions(options => 
            { 
                options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver(); 
            }); 
        } 
 
  1. Please reproduce the issue in the above sample if possible.

Regards, 
Venkatesh Ayothiraman. 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;