Пример #1
0
        /// <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("未实现修改窗体方法!");
            }
        }
Пример #2
0
 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();
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
 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();
             }
         }
     }
 }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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;
                    }
                }
            }
        }
Пример #9
0
        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("未实现新增窗体方法!");
            }
        }
Пример #10
0
        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();
                            }
                        }
                    }
                }
            }
        }