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則沒有這個屬性,希望官方能加入這個屬性就好了。
