Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > BaseGrid > 方法 >
界面刷新
方法名称 分类 说明
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();
    }
}