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); }
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; } }