public GridRowSelectionMixin(IDataGrid grid)
        {
            this.grid = grid;
            this.idField = grid.GetView().IdField;

            grid.GetGrid().OnClick.Subscribe((e, p) => {
                if (J(e.Target).HasClass("select-item"))
                {
                    e.PreventDefault();

                    var item = grid.GetView().GetItem(p.row);
                    var id = item[idField].toString();

                    if (include.ContainsKey(id))
                        include.Remove(id);
                    else
                        include[id] = true;

                    for (var i = 0; i < grid.GetView().GetLength(); i++)
                        grid.GetGrid().UpdateRow(i);

                    UpdateSelectAll();
                }
            });

            grid.GetGrid().OnHeaderClick.Subscribe((e, u) =>
            {
                if (e.IsDefaultPrevented())
                    return;

                if (J(e.Target).HasClass("select-all-items"))
                {
                    e.PreventDefault();
                    var view = grid.GetView();

                    if (include.Count > 0)
                        include.Clear();
                    else
                    {
                        foreach (var x in grid.GetView().GetItems())
                        {
                            var id = x[idField];
                            include[id.toString()] = true;
                        }
                    }
                    UpdateSelectAll();
                    grid.GetView().SetItems(grid.GetView().GetItems(), true);
                }
            });

            grid.GetView().OnRowsChanged.Subscribe((e, u) => UpdateSelectAll());
        }
        public static ToolButton CreateToolButton(IDataGrid grid, string service, Func<bool> onViewSubmit,
            string title = "Excel")
        {
            return new ToolButton
            {
                Title = title,
                CssClass = "export-xlsx-button",
                OnClick = delegate
                {
                    if (!onViewSubmit())
                        return;

                    var request = Q.DeepClone(((ListRequest)grid.GetView().Params));
                    request.Take = 0;
                    request.Skip = 0;

                    var sortBy = grid.GetView().SortBy;
                    if (sortBy != null)
                        request.Sort = sortBy;

                    request.IncludeColumns = new List<string>();
                    foreach (var column in grid.GetGrid().GetColumns())
                        request.IncludeColumns.Add(column.Identifier ?? column.Field);

                    Q.Externals.PostToService(new PostToServiceOptions
                    {
                        Service = service,
                        Request = request,
                        Target = "_blank"
                    });
                }
            };
        }
        public static ToolButton CreateToolButton(IDataGrid grid, string service, Func <bool> onViewSubmit,
                                                  string title = "Excel")
        {
            return(new ToolButton
            {
                Title = title,
                CssClass = "export-xlsx-button",
                OnClick = delegate
                {
                    if (!onViewSubmit())
                    {
                        return;
                    }

                    var request = Q.DeepClone(((ListRequest)grid.GetView().Params));
                    request.Take = 0;
                    request.Skip = 0;

                    var sortBy = grid.GetView().SortBy;
                    if (sortBy != null)
                    {
                        request.Sort = sortBy;
                    }

                    request.IncludeColumns = new List <string>();
                    foreach (var column in grid.GetGrid().GetColumns())
                    {
                        request.IncludeColumns.Add(column.Identifier ?? column.Field);
                    }

                    Q.Externals.PostToService(new PostToServiceOptions
                    {
                        Service = service,
                        Request = request,
                        Target = "_blank"
                    });
                }
            });
        }
Exemple #4
0
        public GridRowSelectionMixin(IDataGrid grid)
        {
            this.grid    = grid;
            this.idField = grid.GetView().IdField;

            grid.GetGrid().OnClick.Subscribe((e, p) => {
                if (J(e.Target).HasClass("select-item"))
                {
                    e.PreventDefault();

                    var item = grid.GetView().GetItem(p.row);
                    var id   = item[idField].toString();

                    if (include.ContainsKey(id))
                    {
                        include.Remove(id);
                    }
                    else
                    {
                        include[id] = true;
                    }

                    for (var i = 0; i < grid.GetView().GetLength(); i++)
                    {
                        grid.GetGrid().UpdateRow(i);
                    }

                    UpdateSelectAll();
                }
            });

            grid.GetGrid().OnHeaderClick.Subscribe((e, u) =>
            {
                if (e.IsDefaultPrevented())
                {
                    return;
                }

                if (J(e.Target).HasClass("select-all-items"))
                {
                    e.PreventDefault();
                    var view = grid.GetView();

                    if (include.Count > 0)
                    {
                        include.Clear();
                    }
                    else
                    {
                        foreach (var x in grid.GetView().GetItems())
                        {
                            var id = x[idField];
                            include[id.toString()] = true;
                        }
                    }
                    UpdateSelectAll();
                    grid.GetView().SetItems(grid.GetView().GetItems(), true);
                }
            });

            grid.GetView().OnRowsChanged.Subscribe((e, u) => UpdateSelectAll());
        }