方法名称 | 分类 | 说明 |
ResumeRedraw | 界面开关 | 恢复更新界面。 |
StopRedraw | 界面开关 | 停止更新界面。 |
StopRedraw会停止当前表格的界面刷新,这样可以在大批量的新增、修改数据的时候减少界面绘制带来的性能负担,极大的提高软件运行的效率。另外,StopRedraw必须跟ResumeRedraw配套使用,在使用过程中一定要使用Try Catch异常处理模块来执行数据操作,否则会导致因为异常而没有正确执行到ResumeRedraw,表格一直处于一片空白的状况。切记!切记!
如果想了解更多关于提高软件运行性能方面的知识,可以参考“禁用刷新提高性能”。
Vb.Net |
Dim tbl As SmGrid=Proj.CurrentSmGrid Dim dt As DataTableHelp=tbl.DataTableHelp.Database.ExecuteDataTableHelp("select * from 订单信息 where 产品='产品04'") '如果查找到了数据 If dt IsNot Nothing AndAlso dt.DataRows.Count>0 Then Try '停止表格的刷新 tbl.StopRedraw() '遍历所有获得的数据,添加到当前表中 For Each dr As RowData In dt.DataRows Dim drNew As RowData=tbl.DataTableHelp.AddNew() drNew("产品")=dr("产品") drNew("业务员")=dr("业务员") drNew("客户")=dr("客户") drNew("数量")=dr("数量") drNew("金额")=dr("金额") Next tbl.Save() Catch ex As Exception UnhandledExceptionManager.ShowAndSaveLog(ex) Finally '恢复表格的刷新,要不然表格会处于一片白色状态 tbl.ResumeRedraw() End Try End If |
C# |
SmGrid tbl = Proj.CurrentSmGrid; DataTableHelp dt = tbl.DataTableHelp.Database.ExecuteDataTableHelp("select * from 订单信息 where 产品='产品04'"); // 如果查找到了数据 if (dt != null && dt.DataRows.Count > 0) { try { // 停止表格的刷新 tbl.StopRedraw(); // 遍历所有获得的数据,添加到当前表中 foreach (RowData dr in dt.DataRows) { RowData drNew = tbl.DataTableHelp.AddNew(); drNew("产品") = dr("产品"); drNew("业务员") = dr("业务员"); drNew("客户") = dr("客户"); drNew("数量") = dr("数量"); drNew("金额") = dr("金额"); } tbl.Save(); } catch (Exception ex) { UnhandledExceptionManager.ShowAndSaveLog(ex); } finally { // 恢复表格的刷新,要不然表格会处于一片白色状态 tbl.ResumeRedraw(); } } |