public ZGridCatalogo()
            : base()
        {
            this.HideBorders      = true;
            this.BodyBorder       = true;
            this.AnchorHorizontal = "right";
            this.AutoHeight       = true;
            this.Listeners.RowDblClick.Handler = "mostrarClick();";

            Ext.Net.RowSelectionModel sModel = new Ext.Net.RowSelectionModel();
            sModel.SingleSelect = true;

            this.SelectionModel.Add(sModel);
        }
Exemplo n.º 2
0
        public void LoadDefaultValues()
        {
            if (SetDefaultValues)
            {
                StripeRows = !DisableStripeRows;
                Border = EnableBorder;
                TrackMouseOver = !DisableTrackMouseOver;

                #region Permissions

                bool hasAddPermission = true, hasDeletePermission = true;
                if (!string.IsNullOrEmpty(this.Module))
                {
                    List<ProcessTypes> permissions = ModuleAuthorizeService.GetModulePermissionsByModule(this.Module);
                    if (permissions == null)
                    {
                        DisableVisible();
                        return;
                    }
                    else
                    {
                        if (permissions.IndexOf(ProcessTypes.View) == -1) { DisableVisible(); return; }
                        hasAddPermission = permissions.IndexOf(ProcessTypes.Add) != -1;
                        hasDeletePermission = permissions.IndexOf(ProcessTypes.Delete) != -1;
                    }
                }

                #endregion

                #region TopBar

                Ext.Net.Button btnDelete = null;

                if (!DisableTopbar)
                {
                    Ext.Net.Toolbar toolbar = null;
                    bool hasToolBar = this.TopBar != null && this.TopBar.Count > 0;
                    if (!hasToolBar)
                        toolbar = new Ext.Net.Toolbar() { ID = string.Format("toolbar{0}", ID) };
                    else
                    {
                        toolbar = (Ext.Net.Toolbar)this.TopBar.First();
                    }

                    #region BtnAdd

                    Ext.Net.Button btnAdd = null;
                    if (hasAddPermission && !DisableAdd && (DetailPage != null))
                    {
                        btnAdd = new Ext.Net.Button {
                            ID = string.Format("btnAdd{0}", this.ID),
                            Text = "Add",
                            Icon = Ext.Net.Icon.Add
                        };

                        if (DetailPage != null)
                            btnAdd.Listeners.Click.Handler = DetailPageScript(true);
                   }

                    #endregion

                    #region BtnDelete

                    if (hasDeletePermission && !DisableDelete && !string.IsNullOrEmpty(DeleteUrl))
                    {
                        btnDelete = new Ext.Net.Button {
                            ID = string.Format("btnDelete{0}", this.ID),
                            Text = "Delete",
                            Icon = Ext.Net.Icon.Delete,
                            Disabled = true
                        };

                        DeleteDirectEvent(btnDelete.DirectEvents.Click);
                    }

                    #endregion

                    #region ToogleSearch

                    Ext.Net.Button btnToogleSearch = null;
                    if (this.EnableSearch && this.ToggleSearch)
                    {
                        btnToogleSearch = new Ext.Net.Button() {
                            ID = string.Format("btnToogleSearch_{0}", this.ID),
                            Icon = Ext.Net.Icon.TableLightning,
                            Text="Filter",
                            EnableToggle=true
                        };
                        btnToogleSearch.Listeners.Click.Handler = string.Format("#{{panel_search_{0}}}.toggleCollapse();", this.ID);
                    }

                    #endregion

                    #region BtnExport

                    Ext.Net.Button btnExport = null;

                    if (!DisableExport && (!DisableExcelExport || !DisableXmlExport || !DisableCsvExport))
                    {
                        btnExport = new Ext.Net.Button {
                            ID = string.Format("btnExport{0}", this.ID),
                            Text = "Export",
                            Icon = Ext.Net.Icon.DatabaseGo
                        };

                        Ext.Net.Menu exportMenu = new Ext.Net.Menu();

                        if(!DisableExcelExport) exportMenu.Items.Add(new Ext.Net.MenuItem { Text = "Excel", Icon = Ext.Net.Icon.PageExcel });
                        if(!DisableXmlExport)   exportMenu.Items.Add(new Ext.Net.MenuItem { Text = "XML", Icon = Ext.Net.Icon.PageCode });
                        if(!DisableCsvExport)   exportMenu.Items.Add(new Ext.Net.MenuItem { Text = "CSV", Icon = Ext.Net.Icon.PageAttach });

                        exportMenu.DirectEvents.Click.IsUpload = true;
                        exportMenu.DirectEvents.Click.CleanRequest = true;
                        exportMenu.DirectEvents.Click.Url = ((Ext.Net.HttpProxy)this.Store[0].Proxy[0]).Url;
                        exportMenu.DirectEvents.Click.FormID = this.FormID ?? "proxyForm";

                        exportMenu.DirectEvents.Click.ExtraParams.AddRange(
                            new List<Ext.Net.Parameter> {
                                new Ext.Net.Parameter{ Name="dir",  Value = "#{" + this.ID + "}.store.sortInfo.direction", Mode= Ext.Net.ParameterMode.Raw },
                                new Ext.Net.Parameter{ Name="sort", Value = "#{" + this.ID + "}.store.sortInfo.field", Mode= Ext.Net.ParameterMode.Raw },
                                new Ext.Net.Parameter{ Name="ExportFormat", Value = "menuItem.iconCls", Mode= Ext.Net.ParameterMode.Raw },
                                new Ext.Net.Parameter{ Name="IsExport", Value = "true" }
                            });

                        string[] exportParams = { "start", "limit", "dir", "sort", "exportformat", "isexport" };

                        foreach (Ext.Net.Parameter param in this.Store.Primary.BaseParams)
                        {
                            if(Array.IndexOf(exportParams, param.Name.ToLower().Trim()) == -1)
                                exportMenu.DirectEvents.Click.ExtraParams.Add(param);
                        }

                        btnExport.Menu.Add(exportMenu);
                    }

                    #endregion

                    #region ToolbarOrder

                    bool isOrdered = false;

                    if (!string.IsNullOrEmpty(ToolbarOrder) && ToolbarOrder.IndexOf(',') != -1)
                    {
                        string[] buttons = ToolbarOrder.Split(',');
                        int totalItemCount = toolbar.Items.Count;
                        int controlItemCount = 3;
                        if (buttons.Length == totalItemCount + controlItemCount)
                        {
                            isOrdered = true;
                            Ext.Net.Component[] toolbarItems = new Ext.Net.Component[totalItemCount];
                            toolbar.Items.CopyTo(toolbarItems);
                            toolbar.Items.Clear();
                            string controlIndex;
                            int index = 0;
                            int j = 0;
                            for (int i = 0; i < buttons.Length; i++)
                            {
                                controlIndex = buttons[i].ToLower().Trim();

                                if (controlIndex == "0")
                                {
                                    if (btnAdd != null) { toolbar.Items.Insert(j, btnAdd); j++; }
                                }
                                else if (controlIndex == "1")
                                {
                                    if (btnDelete != null) { toolbar.Items.Insert(j, btnDelete); j++; }
                                }
                                else if (controlIndex == "2")
                                {
                                    if (btnToogleSearch != null) { toolbar.Items.Insert(j, btnToogleSearch); j++; }
                                }
                                else
                                {
                                    if (Thesis.Common.Helpers.Ax.TryParse(controlIndex, ref index) && index >= controlItemCount)
                                    {
                                        toolbar.Items.Insert(j, toolbarItems[index - controlItemCount]);
                                        j++;
                                    }
                                }
                            }
                        }
                    }

                    if (!isOrdered)
                    {
                        int index = 0;
                        if (btnAdd != null) { toolbar.Items.Insert(index, btnAdd); index++; }
                        if (btnDelete != null) { toolbar.Items.Insert(index, btnDelete); index++; }
                        if (btnToogleSearch != null) { toolbar.Items.Insert(index, btnToogleSearch); }
                    }

                    #endregion

                    toolbar.Items.Add(new Ext.Net.ToolbarFill());
                    if (btnExport != null) toolbar.Items.Add(btnExport);

                    if (!hasToolBar)
                        TopBar.Add(toolbar);
                }

                #endregion

                #region SelectionModel

                if (!DisableSelectionModel && SelectionModel.Count == 0)
                {
                    Ext.Net.RowSelectionModel rowSelectionModel = new Ext.Net.RowSelectionModel();
                    rowSelectionModel.SingleSelect = SingleSelect;

                    if (btnDelete != null)
                    {
                        rowSelectionModel.Listeners.RowSelect.Handler = "#{" + btnDelete.ID + "}.enable();";
                        rowSelectionModel.Listeners.RowDeselect.Handler = "if (!#{" + this.ID + "}.hasSelection()) {#{" + btnDelete.ID + "}.disable();}";
                    }

                    SelectionModel.Add(rowSelectionModel);
                }

                #endregion

                #region BottomBar

                if (!DisableBottomBar && BottomBar.Count == 0)
                    BottomBar.Add(new Ext.Net.PagingToolbar { PageSize = this.PageSize });

                #endregion

                #region KeyMap

                if (!DisableKeyMap)
                {
                    if (hasDeletePermission && !DisableDelete && !string.IsNullOrEmpty(DeleteUrl))
                    {
                        if (btnDelete != null)
                        {
                            Ext.Net.KeyBinding deleteKey = new Ext.Net.KeyBinding();
                            deleteKey.StopEvent = true;
                            deleteKey.Keys.Add(new Ext.Net.Key { Code = Ext.Net.KeyCode.DELETE });
                            deleteKey.Listeners.Event.Handler = "#{" + btnDelete.ID + "}.fireEvent('click', #{" + btnDelete.ID + "});";

                            KeyMap.Add(deleteKey);
                        }
                        else
                        {
                            Listeners.KeyDown.StopEvent = true;
                            Listeners.KeyDown.Handler = "return e.browserEvent.keyCode == 46 && #{" + this.ID + "}.hasSelection();";

                            DeleteDirectEvent(DirectEvents.KeyDown);
                        }
                    }

                    if (hasAddPermission && !DisableAdd && (DetailPage != null))
                    {
                        Ext.Net.KeyBinding newRecord = new Ext.Net.KeyBinding();
                        newRecord.StopEvent = true;
                        newRecord.Ctrl = true;
                        newRecord.Keys.Add(new Ext.Net.Key { Code = Ext.Net.KeyCode.N });
                        newRecord.Listeners.Event.Handler = DetailPageScript(true);

                        KeyMap.Add(newRecord);
                    }

                    if(DetailPage != null)
                    {
                        Ext.Net.KeyBinding detailKey = new Ext.Net.KeyBinding();
                        detailKey.StopEvent = true;
                        detailKey.Keys.Add(new Ext.Net.Key { Code = Ext.Net.KeyCode.ENTER });
                        detailKey.Listeners.Event.Handler = DetailPageScript(false, "#{" + (this.ID ?? string.Empty) + "}", "Ax.GetSelectedRowIndex(#{" + (this.ID ?? string.Empty) + "})");

                        KeyMap.Add(detailKey);
                    }
                }

                #endregion

                #region View

                if (AutoFillColumns && View.Count == 0)
                    View.Add(new Ext.Net.GridView() { AutoFill=true });

                #endregion

                if (DetailPage != null)
                    Listeners.RowDblClick.Handler = DetailPageScript(false) + Listeners.RowDblClick.Handler;

                LoadMask.ShowMask = !DisableMask;
            }
        }