某个报表字段需要展示出层级关系,写了一个方法只能实现单个数据输入输出。
将该方法写入行加载时间后因每日数据量太大,导致每次查询死机。
于是考虑将该展示写到提示符中,实现每次鼠标移到单元格上方时展示该行数据层级关系信息,这样每次只需查询一个数据压力就小了。
实施过程中发现Grid中无单元格上方鼠标停留事件,于是转而考虑别的方面。
发现Grid中有一个AfterRowRegionScroll事件,字面理解为行滚动条滚动后触发。于是有了下面的代码:
1 private void ultraGrid1_AfterRowRegionScroll(object sender, RowScrollRegionEventArgs e) 2 { 3 foreach (VisibleRow row in this.ultraGrid1.ActiveRowScrollRegion.VisibleRows) 4 { 5 row.Row.Cells["JOB_NAME"].ToolTipText = Accident_Query_Comm_Bll.Job_OutPut_BLL(row.Row.Cells["JOB_ID"].Value.ToString()) + row.Row.Cells["JOB_NAME"].Value.ToString(); 6 } 7 }
将Grid中每次滚动条操作后的可见行的提示符利用原有方法赋值,这样根据客户端屏幕大小,每次不会超过30条数据。
完全解决了当初的问题。