表格对话框

全栈之路
用后端知识体系开发原生移动应用
表格对话框
UIGridDialog是表格对话框的基类,也是单值对话框,支持刷新、关闭事件绑定,要实现表格对话框需要扩展类实现的表头信息与表格的数据源,在用getData获取数据的时候,我们可以通过用参数paramsKey获取分页参数和搜索参数。
我们如何实现UIGridDialog呢?只要继承UIGridDialog,实现基方法,如下:
public class UserDialog extends UIGridDialog { @Override protected Map getHeader() { Header header = new Header("Id", 25); header.add("Username", "登录名"); header.add("Alias", "别名"); return header.getHeaderMap(); } @Override protected Map getData(Map paramsKey) { int start = Utility.parse((String) Utility.isNull(paramsKey.get("start"), "0"), 0); int limit = Utility.parse((String) Utility.isNull(paramsKey.get("limit"), "25"), 25); IObjectEntity<User> scheduleEntity = Database.instance().objectEntity(User.class); scheduleEntity.order().desc("RegistrTime"); String Keyword = (String) paramsKey.get("Keyword"); if (Utility.isEmpty(Keyword) == false) { scheduleEntity.where().contains().or().like(() -> { User user = new User(); user.Username = Keyword; user.Alias = Keyword; return user; }); } Map hash = new Hashtable(); hash.put("data", scheduleEntity.query(start, limit)); int total=scheduleEntity.count(); hash.put("total", total); if(total==0){ if (Utility.isEmpty(Keyword) == false) { hash.put("msg","未有账户,请新建") }else{ hash.put("msg","未有搜索到对应账户") } } return hash; } }
从上例代码中,我们可以看到他有两个方法,一个getHeader和getData,一个是配置展示字段和取值字段,getData就是数据源,我们再回到processActivity,看下例代码如何使用这个表格对话框
String strUser = this.asyncDialog("Id", d -> { UserDialog dlg = new UserDialog(); dlg.setSearch(true);//是不是可以搜索,如果为true赠会出现搜索功能 if (this.context().token().isInRole(Membership.AdminRole)) { dlg.menu("创建", "Settings", "User", "News"); //创建右上角的菜单 } dlg.refreshEvent("Setting");//刷新数据事件 return dlg; });
管理员 | 阅读(145) | 评论(0)
暂无点赞