[jeeplus] 使用笔记 (gridSelect、datetimepicker etc.)
本贴最后更新于 1919 天前,其中的信息可能已经时过境迁
相关帖子
请输入回帖内容
...
- 其他回帖
-
PeterChu •作者
根据某列中的值是否包含某个字符串筛选记录:
UPDATE m_levelformajor SET type = ( CASE WHEN 1 < LENGTH(number) AND LENGTH(number) < 3 THEN "22" WHEN 3 < LENGTH(number) AND LENGTH(number) < 5 THEN "23" WHEN 6 <= LENGTH(number) THEN "24" WHEN number IS NULL THEN "21" ELSE "1" END ) WHERE find_in_set('19db900b7129468385d96f96cd6c672a', parent_ids); --设置本科专业记录的 type UPDATE m_levelformajor SET type = ( CASE WHEN 1 < LENGTH(number) AND LENGTH(number) < 3 THEN "12" WHEN 3 < LENGTH(number) AND LENGTH(number) < 5 THEN "13" WHEN 6 <= LENGTH(number) THEN "14" WHEN number IS NULL THEN "11" ELSE "1" END ) WHERE find_in_set('e131fdeaf3f041b086bec4e68dd096c7', parent_ids);```
-
PeterChu •作者
Recognize when is the app first launched WP8 | 易学教程
下面是以配置清单列表中的增、改表单中的后期加上去的 gridSelect 选择框为例,简单说一下加的流程。
//示例代码片段 <sys:gridselect id="proManage" //对象名(可以随便取) url="${ctx}/pro/proManage/data" //gridselect选择框请求数据的url name="proManage.id" //gridselect弹出框选择数据后将 对象名.属性(java属性)的值,替换掉from表单中隐藏input框中的要提交的关联属性(我这里是项目id) value="${proManage.id}" //回显隐藏from表单input中的要提交的关联属性值 labelName="proManage.name" //选择gridselect框中的数据后,会将该 对象名.属性(Java属性) 的值在form表单中的显示的input框中回显 labelValue="${proManage.name}" //打开窗口后回显该 对象名.属性名到form表单中 title="选择项目" //弹出框的title cssClass="form-control required" //样式 fieldLabels="项目编号|项目名称" //gridselect框中表格的列名称 fieldKeys="proCd|name" //gridselect框中表格对应的列要显示的那个字段的值(java属性) searchLabels="项目编号|项目名称" //gridselect框中查询框前的文本值 searchKeys="proCd|name" > //gridselect框中根据该字段查询数据(查询规则在 代码生成器的表单规则内设置的是保持一致的) </sys:gridselect>
具体属性解释
下面试大致过一下框架对这个标签的执行流程,具体的需要自己去看和理解,我粗略的注释一下
<sys:gridselect 这里使用的jsp的自定义标签,这个标签在jeeplus的如下目录中。
sys 自定义标签的位置如下
这里要看的是
gridselect.tag
标签的执行流程。1.解析 tag 自定义标签
2.跳转自定义标签后台,它跳到了 modules/common/gridselect 页面
3.gridselect.jsp 页面
4.它自定义标签的执行过程看懂了就很容易理解各个属性的含义是做什么,有什么不懂可以再相互讨论
-
PeterChu •作者
主附表的页面中的如果某个字段用了字典,那么页面上该怎么显示该字段呢。
自动生成的页面的 Js 代码这块直接是{{dict.name}}
,dict 没见到哪里定义、或者调用了字典,数据库中当然存的是字典的 value,而不是 name ;
我之前的解决办法都是,存储的时候,直接存字典的 name 到数据库表中,这里显示的时候,就用{row.name}
,怎么用其他方法呢
2019-6-13 15:50:51
找到解决办法:原因:js 中未对使用了字典的字段做处理。在 2.41 新版本中发现此处 js 中有处理方法。
function detailFormatter(index, row) { var htmltpl = $("#volunteerChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,""); var html = Mustache.render(htmltpl, { idx:row.id }); $.get("${ctx}/volunteer/volunteerconfig/volunteer/detail?id="+row.id, function(volunteer){ var volunteerChild1RowIdx = 0, volunteerChild1Tpl = $("#volunteerChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,""); var data1 = volunteer.volunteerConfigList; for (var i=0; i<data1.length; i++){ data1[i].dict = {}; data1[i].dict.name = jp.getDictLabel(${fns:toJson(fns:getDictList('school_batches'))}, data1[i].name, "-"); addRow('#volunteerChild-'+row.id+'-1-List', volunteerChild1RowIdx, volunteerChild1Tpl, data1[i]); volunteerChild1RowIdx = volunteerChild1RowIdx + 1; } }) return html; }
这样之后,下面
<script type="text/template" id="volunteerChild1Tpl"> <tr> <td> {{row.dict.name}} </td> <td> {{row.vindex}} </td> <td> {{row.isArt}} </td> <td> {{row.isAdvance}} </td> <td> {{row.reportedStart}} </td> <td> {{row.reportedEnd}} </td> <td> {{row.raiseStart}} </td> <td> {{row.raiseEnd}} </td> <td> {{row.enrollStart}} </td> <td> {{row.enrollEnd}} </td> </tr> </script>
中就可以直接使用
{{row.dict.name}}
,这样,页面中主附表的附表内该字段就会正常显示了。1 操作PeterChu 在 2019-06-13 15:55:15 更新了该回帖 - 查看全部回帖