/// <summary> /// 修改明细 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void btnEditDetail_Click(object sender, EventArgs e) { XButton btnEdit = sender as XButton; XGridEx gridEx = this.FindDetailGridEx(btnEdit.Parent as Janus.Windows.UI.Tab.UITabPage); XModelBase currentModel = this.GetCurrentModel(gridEx); if (currentModel == null) { XMessageBox.ShowError("请选择要修改的记录!"); return; } frmEditBase frm = this.GetEditDetailForm(sender, currentModel); if (frm != null) { if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { gridEx.Refresh(); } } else { XMessageBox.ShowError("未实现修改窗体方法!"); } }
private void tabDetail_SelectedTabChanged(object sender, Janus.Windows.UI.Tab.TabEventArgs e) { if (this.IsTabPageDetailAutoSizeColumns) { Janus.Windows.UI.Tab.UITabPage currentPage = e.Page; XGridEx gridEx = this.FindDetailGridEx(currentPage); gridEx.AutoSizeColumns(); } }
protected virtual XModelBase GetCurrentModel(XGridEx gridEx) { if (gridEx.CurrentRow == null || gridEx.CurrentRow.RowType != Janus.Windows.GridEX.RowType.Record) { return(null); } return(gridEx.CurrentRow.DataRow as XModelBase); }
protected virtual void DeleteDetailRowsFromMemory(XGridEx gridEx, IList <XModelBase> selectedModels) { IList <XModelBase> modelLists = gridEx.DataSource as IList <XModelBase>; foreach (XModelBase model in selectedModels) { Janus.Windows.GridEX.GridEXRow row = gridEx.GetRow(model); row.Delete(); modelLists.Remove(model); } }
protected virtual IList <XModelBase> GetSelectedModels(XGridEx gridEx) { IList <XModelBase> selectedModels = new List <XModelBase>(); foreach (Janus.Windows.GridEX.GridEXRow gridExRow in gridEx.GetCheckedRows()) { XModelBase selectedModel = gridExRow.DataRow as XModelBase; selectedModels.Add(selectedModel); } return(selectedModels); }
protected virtual void InitDetailGrid(string mainId) { foreach (Janus.Windows.UI.Tab.UITabPage tagPage in this.tabDetail.TabPages) { XBusinessBase tabPageBusiness = tagPage.Tag as XBusinessBase; if (tabPageBusiness != null) { XGridEx detailGridEx = this.FindDetailGridEx(tagPage); detailGridEx.DataSource = this.GetTabPageDetailList(tabPageBusiness, mainId); if (IsTabPageDetailAutoSizeColumns) { detailGridEx.AutoSizeColumns(); } } } }
/// <summary> /// 删除明细 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void btnDeleteDetail_Click(object sender, EventArgs e) { XButton btnEdit = sender as XButton; XGridEx gridEx = this.FindDetailGridEx(btnEdit.Parent as Janus.Windows.UI.Tab.UITabPage); IList <XModelBase> selectedModels = this.GetSelectedModels(gridEx); if (selectedModels.Count == 0) { XMessageBox.ShowError("请选择要删除的记录!"); return; } if (!this.ValidateDeleteDetail(sender)) { return; } this.DeleteDetailRowsFromMemory(gridEx, selectedModels); }
/// <summary> /// 填充要保存的字典 /// </summary> protected virtual void FillSaveDetailDict() { this.m_DetailDict = new Dictionary <string, IList <XModelBase> >(); foreach (Janus.Windows.UI.Tab.UITabPage tagPage in this.tabDetail.TabPages) { foreach (Control control in tagPage.Controls) { if (control is XGridEx) { XGridEx gridEx = control as XGridEx; if (m_DetailDict.ContainsKey(gridEx.Name)) { m_DetailDict.Remove(gridEx.Name); } m_DetailDict.Add(gridEx.Name, gridEx.DataSource as IList <XModelBase>); break; } } } }
protected virtual void AddNewDetail(object sender) { XButton btnAddNew = sender as XButton; XGridEx gridEx = this.FindDetailGridEx(btnAddNew.Parent as Janus.Windows.UI.Tab.UITabPage); IList <XModelBase> gridList = gridEx.DataSource as IList <XModelBase>; frmEditBase frm = this.GetAddNewDetailForm(gridList, btnAddNew); if (frm != null) { if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { gridEx.DataSource = null; gridEx.DataSource = frm.ModelList; gridEx.Refresh(); } } else { XMessageBox.ShowError("未实现新增窗体方法!"); } }
private void FillGridByEditForm(frmEditBase frm) { frmTabEditBase frmTabEdit = frm as frmTabEditBase; if (frmTabEdit != null) { IDictionary <string, IList <XModelBase> > dict = frmTabEdit.DetailDict; if (dict != null) { foreach (Janus.Windows.UI.Tab.UITabPage tabPage in this.tabDetail.TabPages) { XGridEx gridEx = this.FindDetailGridEx(tabPage); if (dict.ContainsKey(gridEx.Name)) { if (gridEx != null) { gridEx.DataSource = dict[gridEx.Name]; this.grdData.Refresh(); } } } } } }