Ignite UI API Reference

ig.RESTDataSource

ig.RESTDataSource_image

The RESTDataSource component inherits from the base DataSource and extends it to provide REST support. The RESTDataSource component collects the data using HTTP verbs. When the saveChanges method is called, the RESTDataSource component serializes the request and sends it as a whole (if batch is set to true) or in individual entity chunks (if batch is set to false) grouped by verb type. JSON serialization is the default format for requests. Support for other formats can be accomplished by implementing the contentSerializer function.

Further information regarding the classes, options, events, methods and themes of this API are available under the associated tabs above.

The following code snippet demonstrates how to initialize the $.ig.RESTDataSource component.

For details on how to reference the required scripts and themes for the igGrid control read, Using JavaScript Resources in Ignite UI and Styling and Theming Ignite UI.

Code Sample

 
<!doctype html>
<html>
<head>
    <!-- Infragistics Combined CSS -->
    <link href="css/themes/infragistics/infragistics.theme.css" rel="stylesheet" type="text/css" />
    <link href="css/structure/infragistics.css" rel="stylesheet" type="text/css" />
    <!-- jQuery Core -->
    <script src="js/jquery.js" type="text/javascript"></script>
    <!-- jQuery UI -->
    <script src="js/jquery-ui.js" type="text/javascript"></script>
    <!-- Infragistics Combined Scripts -->
    <script src="js/infragistics.core.js" type="text/javascript"></script>
    <script type="text/javascript">
        var products = [];
        
        products[0] = {
            "ProductID": 1,
            "Name": "Adjustable Race",
            "ProductNumber": "AR-5381"
        };
        products[1] = {
            "ProductID": 2,
            "Name": "Bearing Ball",
            "ProductNumber": "BA-8327"
        };
        
        $(function () {
            var ds = new $.ig.RESTDataSource({
                dataSource: products,
                primaryKey: "ProductID",
                restSettings: {
                    create: {
                        url: "/api/customers/",
                        batch: true
                    },
                    update: {
                        url: "/api/customers/",
                        batch: true
                    },
                    remove: {
                        url: "/api/customers/",
                        batch: true
                    }
                }
            });
            
            ds.dataBind();
            // POST
            ds.addRow(3, {"ProductID": 3, "Name": "BB Ball Bearing", "ProductNumber": "BE-2349"}, true);
            // DELETE
            ds.deleteRow(1, true);
            // PUT
            ds.updateRow(2, {"Name": "Ball Bearing", "ProductNumber": "BE-8329"}, true);
            
            ds.saveChanges(); 
        });
    </script>
</head>
<body>
    <table id="table"></table>
</body>
</html>

    

Related Samples

Related Topics

Dependencies

jquery-1.4.4.js
infragistics.util.js
  • settings

    Type:
    object
    Default:
    {}

    Code Sample

     
            //Initialize
            var ds = new $.ig.RESTDataSource({
                dataSource: products,
                primaryKey: "ProductID",
                restSettings: {
                    create: {
                        url: "/api/customers/",
                        batch: true
                    },
                    update: {
                        url: "/api/customers/",
                        batch: true
                    },
                    remove: {
                        url: "/api/customers/",
                        batch: true
                    }
                }
            });
            
            //Get
            var settings = ds.settings;
          
    • &nbsp;aggregateTransactions

      Type:
      bool
      Default:
      false

      If set to true, the following behavior will take place:
      if a new row is added, and then deleted, there will be no transaction added to the log
      if an edit is made to a row or cell, then the value is brought back to its original value, the transaction should be removed
      Note: This option takes effect only when autoCommit is set to false.

    • &nbsp;autoCommit

      Type:
      bool
      Default:
      false

      If auto commit is true, data will be automatically commited to the data source, once a value or a batch of values are updated via saveChanges().

    • &nbsp;callback

      Type:
      function
      Default:
      null

      Callback function to call when data binding is complete.

    • &nbsp;callee

      Type:
      object
      Default:
      null

      Object on which to invoke the callback function.

    • &nbsp;data

      Type:
      array
      Default:
      []
      Elements Type:
      object

      This is the normalized (transformed) resulting data, after it's fetched from the data source.

    • &nbsp;dataBinding

      Type:
      object
      Default:
      null

      Client-side dataBinding event. Can be a string pointing to a function name, or an object pointing to a function.

    • &nbsp;dataBound

      Type:
      object
      Default:
      null

      Client-side dataBound event. Can be a string pointing to a function name, or an object pointing to a function.

    • &nbsp;dataSource

      Type:
      object
      Default:
      null

      This is the source of data - non normalized. Can be an array, can be reference to some JSON object, can be a DOM element for a HTML TABLE, or a function.

    • &nbsp;fields

      Type:
      array
      Default:
      []
      Elements Type:
      object

      A list of field definitions specifying the schema of the data source.
      Field objects description: {fieldName, [fieldDataType], [fieldXPath]}.

    • &nbsp;filtering

      Type:
      object
      Default:
      {}

      Settings related to built-in filtering functionality.

      • applyToAllData

        Type:
        bool
        Default:
        true

        If the type of paging/sorting/filtering is local and applyToAllData is true, filtering will be performed on the whole data source that's present locally, otherwise only on the current dataView. if type is remote, this setting doesn't have any effect.

      • caseSensitive

        Type:
        bool
        Default:
        false

        Enables or disables case sensitive filtering on the data. Works only for local filtering.

      • customFunc

        Type:
        object
        Default:
        null

        Can point to either a string or a function object. The parameters that are passed are 1) the data array to be filtered, 2) the filtering expression definitions. Should return an array of the filtered data.

      • defaultFields

        Type:
        array
        Default:
        []
        Elements Type:
        object

        Data will be initially filtered accordingly, directly after dataBind().

      • expressions

        Type:
        array
        Default:
        []
        Elements Type:
        object

        A list of expression objects, containing the following key-value pairs: fieldName, expression (search string), condition , and logic (AND/OR).

      • exprString

        Type:
        string
        Default:
        ""

        An "SQL-like' encoded expressions string. Takes precedence over "expressions". Example: col2 > 100; col2 LIKE %test%.

      • filterExprUrlKey

        Type:
        string
        Default:
        null

        Url key that will be encoded in the request if remote filtering is performed. Default value of null implies OData-style URL encoding. Please see http://www.odata.org/developers/protocols/uri-conventions for details.

      • filterLogicUrlKey

        Type:
        string
        Default:
        filterlogic

        Url key that will be encoded in the request, specifying if the filtering logic will be AND or OR.

      • type

        Type:
        enumeration
        Default:
        remote

        Filtering type.

        Members

        • remote
        • Type:string
        • Parameters will be encoded and it's up to the backend to interpred them from the response.
        • local
        • Type:string
        • The data will be filtered automatically client-side.
    • &nbsp;id

      Type:
      string
      Default:
      ds

      Setting this is only necessary when the data source is set to a table in string format. we need to create an invisible dummy data container in the body and append the table data to it.

    • &nbsp;localSchemaTransform

      Type:
      bool
      Default:
      true

      If set to false will disable transformations on schema, even if it is defined locally in the javascript code.

    • &nbsp;outputResultsName

      Type:
      string
      Default:
      null

      This is the property in the dataView where actual resulting records will be put. (So the dataView will not be array but an object if this is defined), after the potential data source transformation.

    • &nbsp;paging

      Type:
      object
      Default:
      {}

      Settings related to built-in paging functionality.

      • appendPage

        Type:
        bool
        Default:
        false

        Whether when a new page of data is requested we should append the new data to the existing data.

      • enabled

        Type:
        bool
        Default:
        false

        Paging is not enabled by default.

      • pageIndex

        Type:
        number
        Default:
        0

        Current page index.

      • pageIndexUrlKey

        Type:
        string
        Default:
        null

        Denotes the name of the encoded URL parameter that will state what is the currently requested page index.

      • pageSize

        Type:
        number
        Default:
        5

        Number of records on each page.

      • pageSizeUrlKey

        Type:
        string
        Default:
        null

        Denotes the name of the encoded URL parameter that will state what is the currently requested page size.

      • type

        Type:
        enumeration
        Default:
        remote

        Type for the paging operation .

        Members

        • local
        • Type:string
        • Data is paged client-side.
        • remote
        • Type:string
        • A remote request is done and URL params encoded.
    • &nbsp;primaryKey

      Type:
      string
      Default:
      null

      The unique field identifier.

    • &nbsp;requestType

      Type:
      string
      Default:
      get

      Specifies the HTTP verb to be used to issue the request.

    • &nbsp;responseContentType

      Type:
      string
      Default:
      null

      Content type of the response. See http://api.jquery.com/jQuery.ajax/ => contentType.

    • &nbsp;responseDataKey

      Type:
      string
      Default:
      null

      Property in the response which specifies where the data records array will be held (if the response is wrapped).

    • &nbsp;responseDataType

      Type:
      enumeration
      Default:
      null

      Response type when a URL is set as the data source. See http://api.jquery.com/jQuery.ajax/ => dataType .

      Members

      • json
      • Type:string
      • xml
      • Type:string
      • html
      • Type:string
      • script
      • Type:string
      • jsonp
      • Type:string
      • text
      • Type:string
    • &nbsp;responseTotalRecCountKey

      Type:
      string
      Default:
      null

      Property in the response which specifies the total number of records in the backend (this is needed for paging).

    • restSettings

      Type:
      object
      Default:
      {}

      Settings related to REST compliant update routine.

      Code Sample

       
              //Initialize
              var ds = new $.ig.RESTDataSource({
                  dataSource: products,
                  primaryKey: "ProductID",
                  restSettings: {
                      create: {
                          url: "/api/customers/",
                          batch: true
                      },
                      update: {
                          url: "/api/customers/",
                          batch: true
                      },
                      remove: {
                          url: "/api/customers/",
                          batch: true
                      }
                  }
              });
              
              //Get
              var rs = ds.settings.restSettings;
                
      • contentSerializer

        Type:
        function
        Default:
        null

        Specifies a custom function to serialize content sent to the server. It should accept a single object or an array of objects and return a string. If not specified, JSON.stringify() will be used.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    dataSource: products,
                    primaryKey: "ProductID",
                    restSettings: {
                        create: {
                            url: "/api/customers/",
                            batch: true
                        },
                        contentType: "application/xml; charset=utf-8",
                        contentSerializer: function (ds) {
                            // if ds contains JavaScript object literal like this: 
                            //{"ID":9,"Name":"Product","Price":90.0,"Quantity":2 } 
                            //then you can serialize it in XML like this
                            return "<Product><ID>" + ds.ID + "</ID><Name>" + ds.Name + 
                            "</Name><Price>" + ds.Price + "</Price><Quantity>" + 
                            ds.Quantity + "</Quantity></Product>";    
                        }
                    }
                });
                
                //Get
                var serializer = ds.settings.restSettings.contentSerializer;
                      
      • contentType

        Type:
        string
        Default:
        application/json; charset=utf-8

        Specifies the content type of the request.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    dataSource: products,
                    primaryKey: "ProductID",
                    restSettings: {
                        create: {
                            url: "/api/customers/",
                            batch: true
                        },
                        contentType: "application/xml; charset=utf-8",
                        contentSerializer: function (ds) {
                            // if ds contains JavaScript object literal like this: 
                            //{"ID":9,"Name":"Product","Price":90.0,"Quantity":2 } 
                            //then you can serialize it in XML like this
                            return "<Product><ID>" + ds.ID + "</ID><Name>" + ds.Name + 
                            "</Name><Price>" + ds.Price + "</Price><Quantity>" + 
                            ds.Quantity + "</Quantity></Product>";    
                        }
                    }
                });
                
                //Get
                var contentType = ds.settings.restSettings.contentType;
                      
      • create

        Type:
        object
        Default:
        {}

        Settings for create requests.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    restSettings: {
                        create: {
                            url: "/api/customers/",
                            batch: true
                        }
                    }
                });
                
                //Get
                var createRs = ds.settings.restSettings.create;
                      
        • batch

          Type:
          bool
          Default:
          false

          Specifies whether create requests will be sent in batches.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          create: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var batch = ds.settings.restSettings.create.batch;
                            
        • template

          Type:
          string
          Default:
          null

          Specifies a remote URL template. Use ${id} in place of the resource id.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          create: {
                              template: "/api/customers/"
                          }
                      }
                  });
                  
                  //Get
                  var template = ds.settings.restSettings.create.template;
                            
        • url

          Type:
          string
          Default:
          null

          Specifies a remote URL to which create requests will be sent. This will be used for both batch and non-batch, however if template is also set, this URL will only be used for batch requests.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          create: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var url = ds.settings.restSettings.create.url;
                            
      • encodeRemoveInRequestUri

        Type:
        bool
        Default:
        true

        Specifies whether the ids of the removed resources are send through the request URI.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    restSettings: {
                        create: {
                            url: "/api/customers/",
                            batch: true
                        },
                        encodeRemoveInRequestUri: false
                    }
                });
                
                //Get
                var encodeRemoveInRequestUri = ds.settings.restSettings.encodeRemoveInRequestUri;
                      
      • remove

        Type:
        object
        Default:
        {}

        Settings for remove requests.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    restSettings: {
                        remove: {
                            url: "/api/customers/",
                            batch: true
                        }
                    }
                });
                
                //Get
                var removeRs = ds.settings.restSettings.remove;
                      
        • batch

          Type:
          bool
          Default:
          false

          Specifies whether update requests will be sent in batches.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          remove: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var batch = ds.settings.restSettings.remove.batch;
                            
        • template

          Type:
          string
          Default:
          null

          Specifies a remote URL template. Use ${id} in place of the resource id.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          remove: {
                              template: "/api/customers/${id}"
                          }
                      }
                  });
                  
                  //Get
                  var template = ds.settings.restSettings.remove.template;
                            
        • url

          Type:
          string
          Default:
          null

          Specifies a remote URL to which remove requests will be sent. This will be used for both batch and non-batch, however if template is also set, this URL will only be used for batch requests.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          remove: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var url = ds.settings.restSettings.remove.url;
                            
      • update

        Type:
        object
        Default:
        {}

        Settings for update requests.

        Code Sample

         
                //Initialize
                var ds = new $.ig.RESTDataSource({
                    restSettings: {
                        update: {
                            url: "/api/customers/",
                            batch: true
                        }
                    }
                });
                
                //Get
                var updateRs = ds.settings.restSettings.update;
                      
        • batch

          Type:
          bool
          Default:
          false

          Specifies whether update requests will be sent in batches.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          update: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var batch = ds.settings.restSettings.update.batch;
                            
        • template

          Type:
          string
          Default:
          null

          Specifies a remote URL template. Use ${id} in place of the resource id.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          update: {
                              template: "/api/customers/${id}"
                          }
                      }
                  });
                  
                  //Get
                  var template = ds.settings.restSettings.update.template;
                            
        • url

          Type:
          string
          Default:
          null

          Specifies a remote URL to which update requests will be sent. This will be used for both batch and non-batch, however if template is also set, this URL will only be used for batch requests.

          Code Sample

           
                  //Initialize
                  var ds = new $.ig.RESTDataSource({
                      restSettings: {
                          update: {
                              url: "/api/customers/",
                              batch: true
                          }
                      }
                  });
                  
                  //Get
                  var url = ds.settings.restSettings.update.url;
                            
    • &nbsp;rowAdded

      Type:
      function
      Default:
      null

      A function to call when row is added.
      Function takes first argument item and second argument dataSource.
      Use item.row to obtain reference to the added row.
      Use item.rowId to get the row ID.
      Use dataSource to obtain reference to $.ig.DataSource.

    • &nbsp;rowDeleted

      Type:
      function
      Default:
      null

      A function to call when row is deleted.
      Use item.row to obtain reference to the deleted row.
      Use item.rowId to get the row ID.
      Use item.rowIndex to get the row index.
      Use dataSource to obtain reference to $.ig.DataSource.

    • &nbsp;rowInserted

      Type:
      function
      Default:
      null

      A function to call when row is inserted.
      Function takes first argument item and second argument dataSource.
      Use item.row to obtain reference to the inserted row.
      Use item.rowId to get the row ID.
      Use item.rowIndex to get the row index.
      Use dataSource to obtain reference to $.ig.DataSource.

    • &nbsp;rowUpdated

      Type:
      function
      Default:
      null

      A function to call when row is updated (edited).
      Function takes first argument item and second argument dataSource.
      Use item.rowIndex to get the row index.
      Use item.newRow to obtain reference to the updated row.
      Use item.oldRow to obtain reference to the row that was updated.
      Use dataSource to obtain reference to $.ig.DataSource.

    • &nbsp;schema

      Type:
      object
      Default:
      null

      A schema object that defines which fields from the data to bind to.

    • &nbsp;serializeTransactionLog

      Type:
      bool
      Default:
      true

      If true, will serialize the transaction log of updated values - if any - whenever commit is performed via a remote request.

    • &nbsp;sorting

      Type:
      object
      Default:
      {}

      Settings related to built-in sorting functionality.

      • applyToAllData

        Type:
        bool
        Default:
        true

        If the sorting type is local and applyToAllData is true, sorting will be performed on the whole data source that's present locally, otherwise only on the current dataView. If sorting type is remote, this setting doesn't have any effect.

      • caseSensitive

        Type:
        bool
        Default:
        false

        Specifies if sorting will be case sensitive or not. Works only for local sorting.

      • compareFunc

        Type:
        object
        Default:
        null

        Custom comparison sorting function. Accepts two values and returns a value 0 indicating that values are equal, 1 indicating that val1 > val2 and -1 indicating that val1 < val2.

      • customConvertFunc

        Type:
        object
        Default:
        null

        Custom data value conversion function. Accepts a value and should return the converted value.

      • customFunc

        Type:
        object
        Default:
        null

        Custom sorting function that can point to either a string or a function object. When the function is called, the following arguments are passed: data array, fields (array of field definitions) , direction ("asc" or "desc"). The function should return a sorted data array.

      • defaultDirection

        Type:
        enumeration
        Default:
        none

        Sorting direction .

        Members

        • none
        • Type:string
        • asc
        • Type:string
        • desc
        • Type:string
      • defaultFields

        Type:
        array
        Default:
        []
        Elements Type:
        object

        When defaultDirection is different than "none", and defaultFields is specified, data will be initially sorted accordingly, directly after dataBind().

      • expressions

        Type:
        array
        Default:
        []
        Elements Type:
        object

        A list of sorting expressions , consisting of the following keys (and their respective values): fieldName and direction.

      • exprString

        Type:
        string
        Default:
        ""

        Takes precedence over experssions, an "SQL-like" encoded expressions string : see sort(). Example col2 > 100 ORDER BY asc.

      • sortUrlAscValueKey

        Type:
        string
        Default:
        null

        URL param value for ascending type of sorting. Default is null and uses OData conventions.

      • sortUrlDescValueKey

        Type:
        string
        Default:
        null

        URL param value for descending type of sorting. Default is null and uses OData conventions.

      • sortUrlKey

        Type:
        string
        Default:
        null

        URL param name which specifies how sorting expressions will be encoded in the URL. Default is null and uses OData conventions.

      • type

        Type:
        enumeration
        Default:
        remote

        Specifies whether sorting will be applied locally or remotely (via a remote request) .

        Members

        • remote
        • Type:string
        • local
        • Type:string
    • &nbsp;summaries

      Type:
      object
      Default:
      {}

      Settings related to built-in summaries functionality.

      • columnSettings

        Type:
        array
        Default:
        []
        Elements Type:
        object

        A list of column settings that specifies custom summaries options per column basis.

      • summariesResponseKey

        Type:
        string
        Default:
        summaries

        Key for retrieving data from the summaries response - used only when summaries are remote.

      • summaryExecution

        Type:
        enumeration
        Default:
        afterfilteringandpaging

        Determines when the summary values are calculated .

        Members

        • priortofilteringandpaging
        • Type:string
        • afterfilteringbeforepaging
        • Type:string
        • afterfilteringandpaging
        • Type:string
      • summaryExprUrlKey

        Type:
        string
        Default:
        summaries

        Url key for retrieving data from response - used only when summaries are remote.

      • type

        Type:
        enumeration
        Default:
        remote

        Specifies whether summaries will be applied locally or remotely (via a remote request) .

        Members

        • remote
        • Type:string
        • A remote request is done and URL params encoded.
        • local
        • Type:string
        • Data is paged client-side.
    • &nbsp;type

      Type:
      enumeration
      Default:
      unknown

      Type of the data source .

      Members

      • json
      • Type:string
      • Specifies that the data source is an already evaluated JSON (JavaScript object/array) or a string that can be evaluated to JSON.
      • xml
      • Type:string
      • Specifies that the data source is a XML Document object or a string that can be evaluated to XML.
      • unknown
      • Type:string
      • Specifies that the data source is of unknown type. In that case it will be analyzed and automatically detected if possible.
      • array
      • Type:string
      • Specifies that the data source is a simple array of objects.
      • htmlTableString
      • Type:string
      • Specifies that the data source points to a string that represents a HTML table.
      • htmlTableId
      • Type:string
      • Specifies that the data source points to an ID of a HTML Table element that's loaded on the page.
      • htmlTableDom
      • Type:string
      • The data source points to a DOM object that is of TABLE type.
      • invalid
      • Type:string
      • Set whenever data source is analyzed (in case its type is unknown) and the type cannot be detected.
      • remoteUrl
      • Type:string
      • Specifies that the data source points to a remote URL, from which data will be retrieved using an AJAX call ($.ajax).
      • empty
      • Type:string
    • &nbsp;updateUrl

      Type:
      string
      Default:
      null

      Specifies an update remote URL, to which an AJAX request will be made as soon as saveChages() is called.

    • &nbsp;urlParamsEncoded

      Type:
      object
      Default:
      null

      Event that is fired after URL parameters are encoded (When a remote request is done). Can point to a function name or the function object itself.

    • &nbsp;urlParamsEncoding

      Type:
      object
      Default:
      null

      Event that is fired before URL parameters are encoded. Can point to a function name or the function object itself.

The current widget has no events.
  • &nbsp;ig.RESTDataSource

    new $.ig.RESTDataSource( options:object );

    • options
    • Type:object
  • &nbsp;addNode

    .addNode( data:object );

    Adds a new node to the tree data source. Creates a transaction that can be committed / rolled back.

    • data
    • Type:object
    • the transaction data.
  • &nbsp;addRow

    .addRow( rowId:object, rowObject:object, autoCommit:bool );
    Return Type:
    object
    Return Type Description:
    . The transaction object that was created.

    Adds a new row to the data source. Creates a transaction that can be committed / rolled back.

    • rowId
    • Type:object
    • the record key - primaryKey (string) or index (number).
    • rowObject
    • Type:object
    • the new record data. .
    • autoCommit
    • Type:bool
    • if autoCommit is true, the datasource will be updated automatically and the transaction is still stored in the accumulated transaction log.
  • &nbsp;allTransactions

    .allTransactions( );
    Return Type:
    array

    Returns a list of all transaction objects that are either pending, or have been committed in the data source.

  • &nbsp;analyzeDataSource

    .analyzeDataSource( );
    Return Type:
    string

    Analyzes the dataSource setting to automatically determine the type of the data source. Returns the data source type. See settings.type.

  • &nbsp;clearLocalFilter

    .clearLocalFilter( );

    This clears local filtering applied to the data view by resetting it to the original data and applying any paging.

  • &nbsp;clearLocalSorting

    .clearLocalSorting( );

    This clears local sorting applied to the data view by resetting it to the original data and applying any paging.

  • &nbsp;commit

    .commit( [id:number] );

    Update the data source with every transaction from the log.

    • id
    • Type:number
    • Optional
    • Id of the transaction to commit. If no id is specified, will commit all transactions to the data source.
  • &nbsp;data

    .data( );
    Return Type:
    object

    Returns all of the bound data, without taking into account local paging, sorting, filtering, etc.

  • &nbsp;dataBind

    .dataBind( [callback:string], [callee:object] );

    Data binds to the current data source data source
    databinding works using the following workflow:
    1. fire the databinding event
    2. based on the data source type (see analyzeDataSource()), do the following:
    3. if type is HtmlTable, parse the table and set the data and dataView respectively.
    if the type is Function, call it, apply Paging/Filtering/Sorting, and set this._dataView . If the developer wants to do his own paging, filtering or sorting
    in that case, then he should handle the PageIndexChanging and/or DataFiltering, and/or ColumnSorting client-side events, and cancel them.
    if no paging/sorting/filtering are enabled, use just this._data to save space
    if the data source is of type RemoteUrl, use jQuery's $.ajax API to trigger a remote request to the service. Use the param() API to encode the URL
    if the data source is invalid, throw an exception
    if the analyzed runtime data source type , that is, the result of analyzeDataSource(), is Unknown, check if
    the value of settings.type is set to XML or JSON. If string, eval for JSON, and parse for the XML to build the object ree
    4. now normalize/transform the data, if a schema is supplied. This inplies any additional data type conversion
    5. next, if OpType is Local, apply paging, sorting, and/or filtering to the data, and store the result in this._dataView
    6. fire the databound event
    .

    • callback
    • Type:string
    • Optional
    • callback function .
    • callee
    • Type:object
    • Optional
    • callee object on which the callback will be executed. If none is specified, will assume global execution context.
  • &nbsp;dataSource

    .dataSource( [ds:object] );
    Return Type:
    object

    Gets/sets the dataSource setting. If no parameter is specified, returns settings.dataSource.

    • ds
    • Type:object
    • Optional
    • .
  • &nbsp;dataSummaries

    .dataSummaries( );
    Return Type:
    object

    Returns summaries data.

  • &nbsp;dataView

    .dataView( );
    Return Type:
    object

    Returns the current normalized/transformed and paged/filtered/sorted data, i.e. the dataView.

  • &nbsp;deleteRow

    .deleteRow( rowId:object, autoCommit:bool );
    Return Type:
    object
    Return Type Description:
    . The transaction object that was created.

    Deletes a row from the data source.

    • rowId
    • Type:object
    • the record key - primaryKey (string) or index (number).
    • autoCommit
    • Type:bool
    • if autoCommit is true, the datasource will be updated automatically and the transaction is still stored in the accumulated transaction log.
  • &nbsp;fields

    .fields( [fields:object] );
    Return Type:
    object
    Return Type Description:
    if no parameters are specified, returns the existing list of fields.

    Sets a list of fields to the data source. If no parameter is specified, just returns the already existing list of fields.

    • fields
    • Type:object
    • Optional
    • a field has the following format: {key: 'fieldKey', dataType: 'string/number/date' }.
  • &nbsp;filter

    .filter( fieldExpressions:object, boolLogic:object, keepFilterState:bool, fieldExpressionsOnStrings:object );

    Filters the data source locally. Remote filtering can be performed by just calling dataBind() and setting the settings.filtering.expressions. The result (filtered data) can be obtained by calling dataView()
    example: [{fieldName : "firstName", expr: "abc", cond: "StartsWith"}, {fieldName : "lastName"}]
    example 2: [{fieldIndex : 1} , {fieldIndex : 2, expr: "a", cond : "contains"}]
    expr is the filter expression text , such as "abc", or a regular expression such as *test*
    cond is the filtering condition such as startsWith, endsWith, contains, equals, doesNotEqual, doesNotContain
    if expr is detected to be a regular expression, the "cond" part is skipped
    .

    • fieldExpressions
    • Type:object
    • a list of field expression definitions.
    • boolLogic
    • Type:object
    • boolean logic. Accepted values are AND and OR. .
    • keepFilterState
    • Type:bool
    • if keepFilterState is set to true, it will not discard previous filtering expressions.
    • fieldExpressionsOnStrings
    • Type:object
  • &nbsp;filterSettings

    .filterSettings( [f:object] );

    Gets/sets a list of filtering settings.

    • f
    • Type:object
    • Optional
    • object holding all filtering settings. See settings.filtering.
  • &nbsp;findRecordByKey

    .findRecordByKey( key:string, ds:object );
    Return Type:
    object
    Return Type Description:
    a JavaScript object specifying the found record, or null if no record is found.

    Returns a record by a specified key (requires that primaryKey is set in the settings).

    • key
    • Type:string
    • Primary key of the record.
    • ds
    • Type:object
  • &nbsp;getDetachedRecord

    .getDetachedRecord( t:object );
    Return Type:
    object
    Return Type Description:
    a copy of a record from the data source.

    Returns a standalone object (copy) that represents the commited transactions, but detached from the data source.

    • t
    • Type:object
    • a transaction object.
  • &nbsp;hasTotalRecordsCount

    .hasTotalRecordsCount( hasCount:bool );

    Gets / sets if the response from the server contains a property which specifies the total number of records in the server-side backend.

    • hasCount
    • Type:bool
    • specifies if the data source contains a property that denotes the total number of records in the server-side backend.
  • &nbsp;insertRow

    .insertRow( rowId:object, rowObject:object, rowIndex:bool, autoCommit:object );
    Return Type:
    object
    Return Type Description:
    . The transaction object that was created.

    Adds a new row to the data source. Creates a transaction that can be committed / rolled back.

    • rowId
    • Type:object
    • the record key - primaryKey (string) or index (number).
    • rowObject
    • Type:object
    • the new record data. .
    • rowIndex
    • Type:bool
    • if autoCommit is true, the datasource will be updated automatically and the transaction is still stored in the accumulated transaction log.
    • autoCommit
    • Type:object
  • &nbsp;metadata

    .metadata( key:string );
    Return Type:
    object
    Return Type Description:
    metadata object.

    Returns metadata object for the specified key.

    • key
    • Type:string
    • Primary key of the record.
  • &nbsp;nextPage

    .nextPage( );

    Sets the page index to be equal to the next page index and rebinds the data source.

  • &nbsp;pageCount

    .pageCount( );
    Return Type:
    number
    Return Type Description:
    total number fo pages.

    Returns the total number of pages.

  • &nbsp;pageIndex

    .pageIndex( [index:number] );
    Return Type:
    number
    Return Type Description:
    the current page index.

    Gets /sets the current page index. If an index is passed as a parameter, the data source is re-bound.

    • index
    • Type:number
    • Optional
    • the page index. If none is specified, returns the current page index.
  • &nbsp;pageSize

    .pageSize( [s:number] );

    Gets /sets the page size and rebinds the data source if a parameter is specified. If no parameter is passed, returns the current page size.

    • s
    • Type:number
    • Optional
    • the page size.
  • &nbsp;pageSizeDirty

    .pageSizeDirty( );

    For internal use.

  • &nbsp;pagingSettings

    .pagingSettings( [p:object] );

    Gets/sets a list of paging settings.

    • p
    • Type:object
    • Optional
    • object holding all paging settings. See settings.paging.
  • &nbsp;pendingTransactions

    .pendingTransactions( );
    Return Type:
    array

    Returns a list of all transaction objects that are pending to be committed or rolled back to the data source.

  • &nbsp;prevPage

    .prevPage( );

    Sets the page index to be equal to the previous page index and rebinds the data source.

  • &nbsp;recordsForPage

    .recordsForPage( p:number );

    Returns a list of records for the specified page. Implies that paging is enabled.

    • p
    • Type:number
    • the page index for which records will be returned.
  • &nbsp;removeNode

    .removeNode( data:object );

    Removes a node from the tree data source. Creates a transaction that can be committed / rolled back.

    • data
    • Type:object
    • the transaction data.
  • &nbsp;removeRecordByIndex

    .removeRecordByIndex( index:number, origDs:object );

    Removes a record from the data source at specific index.

    • index
    • Type:number
    • index of record.
    • origDs
    • Type:object
  • &nbsp;removeRecordByKey

    .removeRecordByKey( key:object, origDs:object );

    Removes a specific record denoted by the primaryKey of the passed key parameter from the data source.

    • key
    • Type:object
    • primary key of the record.
    • origDs
    • Type:object
  • &nbsp;rollback

    .rollback( [id:object] );

    Clears the transaction log without updating anything in the data source.

    • id
    • Type:object
    • Optional
    • Record Id to find transactions for. If no id is specified, will rollback all transactions to the data source.
  • saveChanges

    .saveChanges( success:object, error:object );

    • success
    • Type:object
    • error
    • Type:object
  • &nbsp;schema

    .schema( [s:object], [t:string] );

    Gets/sets the schema definition.

    • s
    • Type:object
    • Optional
    • a schema object .
    • t
    • Type:string
    • Optional
    • type of the data source. See settings.type.
  • &nbsp;setCellValue

    .setCellValue( rowId:object, colId:object, val:object, autoCommit:bool );
    Return Type:
    object
    Return Type Description:
    . The transaction object that was created.

    Sets a cell value for the cell denoted by rowId and colId. Creates a transaction for the update operation and returns it.

    • rowId
    • Type:object
    • the rowId - row key (string) or index (number).
    • colId
    • Type:object
    • the column id - column key (string) or index (number).
    • val
    • Type:object
    • The new value .
    • autoCommit
    • Type:bool
    • if autoCommit is true, it updates the datasource automatically and the transaction is still stored in the accumulated transaction log.
  • &nbsp;sort

    .sort( fields:object, direction:string, keepSortState:bool );

    Sorts the data source locally. The result (filtered data) can be obtained by calling dataView(). Remote filtering can be performed by just calling dataBind() and setting the settings.filtering.expressions
    multi-column sorting can be enabled by setting keepSortState to true.
    fields => an array of fields object definitions:
    example: [{fieldName : "firstName"}, {fieldName : "lastName"}]
    example 2: [{fieldIndex : 1} , {fieldIndex : 2}]
    .

    • fields
    • Type:object
    • an array of fields object definitions.
    • direction
    • Type:string
    • asc / desc direction.
    • keepSortState
    • Type:bool
    • if set to true, enables multi-column sorting, and the previous sorting state is not cleared.
  • &nbsp;sortSettings

    .sortSettings( [s:object] );

    Gets/sets a list of paging settings.

    • s
    • Type:object
    • Optional
    • object holding all sorting settings. See settings.sorting.
  • &nbsp;stringToJSONObject

    .stringToJSONObject( s:string );

    Parses the string and returns an evaluated JSON object.

    • s
    • Type:string
    • the JSON as string.
  • &nbsp;stringToXmlObject

    .stringToXmlObject( s:string );

    Parses a string and returns a XML Document.

    • s
    • Type:string
    • the XML represented as a string.
  • &nbsp;summariesResponse

    .summariesResponse( key:object, dsObj:object );

    Get summaries calculation data from remote response.

    • key
    • Type:object
    • dsObj
    • Type:object
  • &nbsp;summariesSettings

    .summariesSettings( [s:object] );

    Gets/sets a list of summaries settings.

    • s
    • Type:object
    • Optional
    • object holding all summaries settings. See settings.summaries.
  • &nbsp;tableToObject

    .tableToObject( tableDOM:domelement );
    Return Type:
    object

    Converts a HTML TABLE dom element to a JavaScript array of objects that contain the records data.

    • tableDOM
    • Type:domelement
    • TABLE dom element to transform.
  • &nbsp;totalLocalRecordsCount

    .totalLocalRecordsCount( );
    Return Type:
    number
    Return Type Description:
    the number of records that are bound / exist locally.

    Returns the total number of records in the local data source.

  • &nbsp;totalRecordsCount

    .totalRecordsCount( [count:number], key:object, dsObj:object, context:object );

    Applicable only when the data source is bound to remote data. Gets / sets the total number of records in the data source. If data binding is remote, and there's paging or filtering enabled, the actual total number of records may not
    match the number of records that exists on the client.

    • count
    • Type:number
    • Optional
    • the total number of records.
    • key
    • Type:object
    • dsObj
    • Type:object
    • context
    • Type:object
  • &nbsp;transactionsAsString

    .transactionsAsString( );
    Return Type:
    string

    Returns the accumulated transaction log as a string. The purpose of this is to be passed to URLs or used conveniently.

  • &nbsp;transformedData

    .transformedData( transformedExecution:object );
    Return Type:
    object

    Returns transformed data according to transformed execution:
    1. Before paging and filtering
    2. After filtering before paging
    3. After filtering and paging
    .

    • transformedExecution
    • Type:object
  • &nbsp;type

    .type( [t:object] );

    Gets/sets the type of the dataSource. If no parameter is specified, returns settings.type
    returnType="json|xml|unknown|array|function|htmlTableString|htmlTableId|htmlTableDom|invalid|remoteUrl|empty".

    • t
    • Type:object
    • Optional
    • .
  • &nbsp;updateRow

    .updateRow( rowId:object, rowObject:object, autoCommit:bool );
    Return Type:
    object
    Return Type Description:
    . The transaction object that was created.

    Updates a record in the datasource. Creates a transaction that can be committed / rolled back.

    • rowId
    • Type:object
    • the record key - primaryKey (string) or index (number).
    • rowObject
    • Type:object
    • the record object containing the key/value pairs we want to update. It doesn't have to include key/value pairs for all fields defined in the schema or in the data source (if no schema is defined).
    • autoCommit
    • Type:bool
    • if autoCommit is true, the datasource will be updated automatically and the transaction is still stored in the accumulated transaction log.

Copyright © 1996 - 2018 Infragistics, Inc. All rights reserved.

#