用法
- 用于扩展搜索数据列表的方法。(例如使用下拉列表过滤记录)。 请参考 Datalist Builder - Filter.
- 可用的Datalist Filter Type插件必须扩展 org.joget.apps.datalist.model.DataListFilterTypeDefault abstract class.
抽象类
org.joget.apps.datalist.model.DataListFilterTypeDefault
- 在 wflow-core 模块下
- 继承 org.joget.plugin.base.ExtDefaultPlugin. 请参考 Plugin Base Abstract Class and Interface.
- 实现 org.joget.plugin.property.model.PropertyEditable. 请参考 Plugin Base Abstract Class and Interface.
- 一个开发Datalist Filter Type插件的基础抽象类。
方法细节
抽象方法
getTemplate
public java.lang.String getTemplate(org.joget.apps.datalist.model.DataList datalist, java.lang.String name, java.lang.String label)
获取 已经过滤的 HTML template
getQueryObject
public org.joget.apps.datalist.model.DataListFilterQueryObject getQueryObject(org.joget.apps.datalist.model.DataList datalist, java.lang.String name)
条件和参数构造查询。
实用方法
getValue
public java.lang.String getValue(org.joget.apps.datalist.model.DataList datalist, java.lang.String name)
从请求参数中获取值的简便方法
getValue
public java.lang.String getValue(org.joget.apps.datalist.model.DataList datalist, java.lang.String name, java.lang.String defaultValue)
从请求参数中获取值的简便方法
如果为空,返回 默认值
getValues
public java.lang.String[] getValues(org.joget.apps.datalist.model.DataList datalist, java.lang.String name)
从请求参数中获取多个值的简便方法
getValues
public java.lang.String[] getValues(org.joget.apps.datalist.model.DataList datalist, java.lang.String name, java.lang.String defaultValue)
从请求参数中获取多个值的简便方法
如果为空,返回 默认值 . 如果是多个值,以分号分割。
插件属性选项
- 请参考 Plugin Properties Options 获取更多信息。
Datalist Filter Type 插件模板代码
以下是文本字段过滤器类型的示例模板 . 它使用 FreeMaker 语法. 该模板将被getTemplate 方法使用并返回
public String getTemplate(DataList datalist, String name, String label) { PluginManager pluginManager = (PluginManager) AppUtil.getApplicationContext().getBean("pluginManager"); Map dataModel = new HashMap(); dataModel.put("name", datalist.getDataListEncodedParamName(DataList.PARAMETER_FILTER_PREFIX+name)); dataModel.put("label", label); dataModel.put("value", getValue(datalist, name, getPropertyString("defaultValue"))); dataModel.put("contextPath", WorkflowUtil.getHttpServletRequest().getContextPath()); return pluginManager.getPluginFreeMarkerTemplate(dataModel, getClassName(), "/templates/textFieldDataListFilterType.ftl", null); }
<script type="text/javascript" src="${contextPath}/plugin/org.joget.apps.datalist.lib.TextFieldDataListFilterType/js/jquery.placeholder.min.js"></script> <input id="${name!}" name="${name!}" type="text" size="10" value="${value!?html}" placeholder="${label!?html}"/> <script type="text/javascript"> $(document).ready(function(){ $('#${name!}').placeholder(); }); </script>
说明
- 没有指定格式需要遵循
- 确保过滤器输入名称是从 datalist.getDataListEncodedParamName(DataList.PARAMETER_FILTER_PREFIX+name) 获取的值。.
教程
相关社区版插件
Text Field Data List Filter Type
org.joget.apps.datalist.lib.TextFieldDataListFilterType (wflow-core)