joeharrison714 / MVCGrid.Net

http://mvcgrid.net
MIT License
75 stars 56 forks source link

Paging is not working #198

Open jsuske1985 opened 4 years ago

jsuske1985 commented 4 years ago

Hello,

I am trying to add paging to my grid, but its not appearing or limiting my results....here is my code:

GridDefinition<DepositLog> def = new GridDefinition<DepositLog>();

            GridColumn<DepositLog> ID = new GridColumn<DepositLog>();
            ID.ColumnName = "ID";
            ID.HeaderText = "ID";
            ID.HtmlEncode = false;
            ID.ValueTemplate = "<input type='text' name='ID' value='{Value}' class='form-control' />";
            ID.ValueExpression = (i, c) => i.id.ToString();
            def.AddColumn(ID);

            GridColumn<DepositLog> PayTo = new GridColumn<DepositLog>();
            PayTo.ColumnName = "PayTo";
            PayTo.HeaderText = "PayTo";
            PayTo.HtmlEncode = false;
            PayTo.ValueTemplate = "<input type='text' name='PayTo' value='{Value}' class='form-control' />";
            PayTo.ValueExpression = (i, c) => i.PayTo.ToString();
            def.AddColumn(PayTo);

            GridColumn<DepositLog> Category = new GridColumn<DepositLog>();
            Category.ColumnName = "Category";
            Category.HeaderText = "Category";
            Category.HtmlEncode = false;
            Category.ValueTemplate = "<input type='text' name='Category' value='{Value}' class='form-control' />";
            Category.ValueExpression = (i, c) => i.Category.ToString();
            def.AddColumn(Category);

            def.Paging = true;
            def.ItemsPerPage = 10;

            def.RetrieveData = (options) =>
            {
                return new QueryResult<DepositLog>()
                {
                    Items = _modelItems,
                    TotalRecords = 0
                };
            };

            try
            {
                MVCGridDefinitionTable.GetDefinition<DepositLog>("DepositLogGrid");
            }
            catch (Exception e)
            {
                MVCGridDefinitionTable.Add("DepositLogGrid", def);
            }

And my view:

@Html.MVCGrid("DepositLogGrid")

What am I doing wrong?

jsuske1985 commented 4 years ago

Solved It:

def.Paging = true;
            def.ItemsPerPage = 25;
            def.MaxItemsPerPage = 25;

            def.RetrieveData = (context) =>
            {

                var options = context.QueryOptions;

                var result = new QueryResult<DepositLog>();

                var query = _modelItems.AsQueryable();

                result.TotalRecords = query.Count();

                if (options.GetLimitOffset().HasValue)
                {
                    query = query.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value);
                }
                result.Items = query.ToList();

                return result;
            };