if you can see

 $scope.filterOptions = {
        filterText: "",
        useExternalFilter: true
    }

You have not provided the search text box detail, it should be like this
filterOptions: {
    filterText: '',
    externalFilter: 'searchText',
    useExternalFilter: true
  }

For more detail see "
ng-grid search sort paging with AngularJs WebAP and MVC ASP.Net 
<http://advancesharp.com/blog/1116/ng-grid-search-sort-paging-with-angularjs-webap-and-mvc-asp-net>

On Thursday, July 25, 2013 9:10:39 AM UTC-4, Naftis wrote:
>
> Hi, I'm starting with AngularJS so probably I'm missing something obvious, 
> but I cannot manage to have external filtering work in my ng-grid (
> http://angular-ui.github.io/ng-grid/) usage sample. On the server side I 
> have an MVC webapi application exposing some fake data via a RESTful GET. 
> On the client side, I can see data and page through them (with server-side 
> paging), but when I type something in the filter's text of the ng-grid my 
> $watch-ed function does not get called, and thus I have no chance to 
> request filtered data to the server. Yet, the same watch expressions work 
> fine when used e.g. for paging or sorting. What I'm doing wrong?
>
> Here is the relevant JS code snippet:
>
> var app = angular.module('MyApp', ['ngGrid']);
> app.controller('MainController', ['$scope', '$http', function ($scope, 
> $http) {
>     $scope.items = [];
>     $scope.filterOptions = {
>         filterText: "",
>         useExternalFilter: true
>     };
>     $scope.totalServerItems = 0;
>     $scope.pagingOptions = {
>         pageSizes: [25, 50, 100],
>         pageSize: 25,
>         currentPage: 1
>     };
>     $scope.sortOptions = {
>     // omitted for brevity...
>     };
>     
>     $scope.gridOptions = {
>         data: "items",
>         columnDefs: [
>             { field: "id", displayName: "ID", width: "60" },
>             { field: "name", displayName: "Name", pinnable: true },
>             { field: "age", displayName: "Age", width: "60" },
>             { field: "isFemale", displayName: "F", width: "40" }
>         ],
>         enablePaging: true,
>         enablePinning: true,
>         pagingOptions: $scope.pagingOptions,        
>         filterOptions: $scope.filterOptions,
>         keepLastSelected: true,
>         multiSelect: false,
>         showColumnMenu: true,
>         showFilter: true,
>         showGroupPanel: true,
>         showFooter: true,
>         sortInfo: $scope.sortOptions,
>         totalServerItems: "totalServerItems",
>         useExternalSorting: true,
>         i18n: "en"
>     };
>
>     $scope.refresh = function() {
>         setTimeout(function () {
>             // call the server and get data into $scope.items...
>         }, 100);
>     };
>
>     // this WORKS    
>     $scope.$watch('pagingOptions', function (newVal, oldVal) {
>         if (newVal !== oldVal) {
>             $scope.refresh();
>         }
>     }, true);
>
>     // this DOES NOT WORK: the function never gets called
>     $scope.$watch('filterOptions', function (newVal, oldVal) {
>         if (newVal !== oldVal) {
>             $scope.refresh();
>         }
>     }, true);
>
>     // this WORKS
>     $scope.$watch('sortOptions', function (newVal, oldVal) {
>         if (newVal !== oldVal) {
>             $scope.refresh();
>         }
>     }, true);
>
>     $scope.refresh();
> }]);
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to