function beforedeselect(sender, record, index, eOpts) { if(record.data.leaf){sender.uform.mask("正在检索数据中...");}; }
当点击TreeGrid时,我要做一个长时间的查询,这时候需要显示Mask,避免用户重复操作界面。象上面这样,用js代码显示mask。
当执行完查询时,隐藏Mask。
procedure TUserYzcFrame.UniTimer1Timer(Sender: TObject); begin UniTimer1.Enabled := False; // 先关定时器 Open;//执行长时间的查询 //隐藏mask。 UniSession.AddJS(MainForm.WebForm.JSForm.JSName+'.unmask(); '); end;
感谢朋友风轻云淡告诉这个方法!
实际上,uniButton,uniEdit等控件都有一个ScreenMask属性,通过这个属性,就可以实现上面的效果:
ScreenMask.Enabled:=True;
当点击一个按钮,执行长时间的查询的时候,就会在开始查询前显示Mask,执行完成后,隐藏Mask,不用写一行代码。可惜TreeGrid则没有这个属性,希望官方能加入这个属性就好了。