merge: 合并初始化缓存与资源释放优化
This commit is contained in:
@@ -64,6 +64,8 @@ namespace Lskj.Control
|
||||
private MyControl _leftGridSearchObj;
|
||||
private GridDragTree _gridDragTree;
|
||||
private bool mModuleResourcesReleased;
|
||||
private GridDragGrid _gridDragGrid;
|
||||
private BandedGridDragGrid _bandedGridDragGrid;
|
||||
|
||||
public bool IsExcel { get { return Model is DynamicExcelModel; } }
|
||||
/// <summary>
|
||||
@@ -152,6 +154,7 @@ namespace Lskj.Control
|
||||
public ModuleEx()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.Disposed += OnModuleExDisposed;
|
||||
}
|
||||
|
||||
public void ReleaseResourcesForDispose()
|
||||
@@ -207,6 +210,22 @@ namespace Lskj.Control
|
||||
dragTree.Dispose();
|
||||
}
|
||||
|
||||
GridDragGrid dragGrid = _gridDragGrid;
|
||||
_gridDragGrid = null;
|
||||
if (dragGrid != null)
|
||||
{
|
||||
dragGrid.OnDragComplete -= OnDragGridCompleted;
|
||||
dragGrid.Dispose();
|
||||
}
|
||||
|
||||
BandedGridDragGrid bandedDragGrid = _bandedGridDragGrid;
|
||||
_bandedGridDragGrid = null;
|
||||
if (bandedDragGrid != null)
|
||||
{
|
||||
bandedDragGrid.OnDragComplete -= OnDragBandedGridCompleted;
|
||||
bandedDragGrid.Dispose();
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (treeLeft != null)
|
||||
@@ -379,9 +398,14 @@ namespace Lskj.Control
|
||||
if (Model.HasOperPrivilege() && model.IsBaseModule)
|
||||
{
|
||||
// 有权限则允许拖拽
|
||||
this._gridDragTree = new GridDragTree(this.ModuleGridObj.GridControlObj.GridView, this.treeLeft.TreeView);
|
||||
this._gridDragTree.CanDragParentNode = true;
|
||||
this._gridDragTree.OnDragComplete += new GridDragTreeCompleteEventHandler(OnDragTreeCompleted);
|
||||
if (_gridDragTree != null)
|
||||
{
|
||||
_gridDragTree.OnDragComplete -= OnDragTreeCompleted;
|
||||
_gridDragTree.Dispose();
|
||||
}
|
||||
_gridDragTree = new GridDragTree(this.ModuleGridObj.GridControlObj.GridView, this.treeLeft.TreeView);
|
||||
_gridDragTree.CanDragParentNode = true;
|
||||
_gridDragTree.OnDragComplete += new GridDragTreeCompleteEventHandler(OnDragTreeCompleted);
|
||||
}
|
||||
if (this.SysModel.TreeDoubleClick)
|
||||
{
|
||||
@@ -428,10 +452,11 @@ namespace Lskj.Control
|
||||
if (Model.HasOperPrivilege() && model.IsBaseModule && !this.SysModel.IsTreeTable)
|
||||
{
|
||||
// 有权限则允许拖拽
|
||||
GridDragGrid dragGrid = new GridDragGrid(this.ModuleGridObj.GridControlObj.GridView, this.gridLeft.GridView);
|
||||
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
|
||||
_gridDragGrid?.Dispose();
|
||||
_gridDragGrid = new GridDragGrid(this.ModuleGridObj.GridControlObj.GridView, this.gridLeft.GridView);
|
||||
_gridDragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
|
||||
//配置了拖拽条件后,在点击时判断条件
|
||||
dragGrid.DragConditions = this.SysModel.DragConditions;
|
||||
_gridDragGrid.DragConditions = this.SysModel.DragConditions;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -504,8 +529,9 @@ namespace Lskj.Control
|
||||
if (Model.HasOperPrivilege() && model.IsBaseModule && !this.SysModel.IsTreeTable && this.ModuleGridObj.GridControlObj.GridView is BandedGridView&&(this.SysModel.MenuType==2 || this.SysModel.MenuType==5))
|
||||
{
|
||||
// 有权限则允许拖拽
|
||||
BandedGridDragGrid BandedDragGrid = new BandedGridDragGrid(this.ModuleGridObj.GridControlObj.GridView as BandedGridView, this.gridLeft.GridView);
|
||||
BandedDragGrid.OnDragComplete += new BandedGridFragGridCompleteEventHandler(OnDragBandedGridCompleted);
|
||||
_bandedGridDragGrid?.Dispose();
|
||||
_bandedGridDragGrid = new BandedGridDragGrid(this.ModuleGridObj.GridControlObj.GridView as BandedGridView, this.gridLeft.GridView);
|
||||
_bandedGridDragGrid.OnDragComplete += new BandedGridFragGridCompleteEventHandler(OnDragBandedGridCompleted);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2122,6 +2148,15 @@ namespace Lskj.Control
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 控件销毁后释放拖拽辅助对象;关闭被取消时不会触发,不影响模块继续使用。
|
||||
/// </summary>
|
||||
private void OnModuleExDisposed(object sender, EventArgs e)
|
||||
{
|
||||
this.Disposed -= OnModuleExDisposed;
|
||||
ReleaseResourcesForDispose();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 初始化页签
|
||||
|
||||
Reference in New Issue
Block a user