我是liferay开发的新手。
我已经做了很好的工作来使用liferay搜索容器显示liferay网格。
但现在要求网格中的某些字段应该由用户修改。
是否可以通过liferay搜索容器或者我是否需要遵循任何其他方法来实现可编辑的liferay网格?
答案 0 :(得分:0)
您可以使用<liferay-ui:search-container-column-jsp
标记或直接使用<aui-input />
标记内的<liferay-ui:search-container-column-text
。
示例(我已经在代码示例中包含了代码注释以供您理解):
<liferay-ui:search-container
emptyResultsMessage="no-assets-selected"
iteratorURL="<%= configurationRenderURL %>"
total="<%= assetEntries.size() %>"
>
<liferay-ui:search-container-results
results="<%= assetEntries.subList(searchContainer.getStart(), searchContainer.getResultEnd()) %>"
/>
<liferay-ui:search-container-row
className="com.liferay.portlet.asset.model.AssetEntry"
escapedModel="<%= true %>"
keyProperty="entryId"
modelVar="assetEntry"
>
<aui:form action="doesThisWork?">
<%-- this is the normal way --%>
<liferay-ui:search-container-column-text
name="type"
value="<%= assetRendererFactory.getTypeName(locale, false) %>"
/>
<liferay-ui:search-container-column-date
name="modified-date"
value="<%= assetEntry.getModifiedDate() %>"
/>
<%--
this is the JSP way
You can include anything in the JSP like <input /> fields, textarea, select drop-down etc.
--%>
<liferay-ui:search-container-column-jsp
align="right"
path="/html/portlet/asset_publisher/asset_selection_action.jsp"
/>
<%--
Here is including <input /> field inside the column text field.
Notice I am not using the "value" attribute of this tag, instead I am
writing HTML inside the body of this tag.
--%>
<liferay-ui:search-container-column-text
name="type"
>
<aui:input type="text" name="enterSomething" value="I can enter input here" />
<aui:input type="text" name="enterSomething" value="<%=assetEntry.getTitle %>" />
<aui:input type="hidden" name="enterSomething" value="this is a hidden field of the form" />
</liferay-ui:search-container-column-text>
</aui:form>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="<%= total > SearchContainer.DEFAULT_DELTA %>" />
</liferay-ui:search-container>
在上面的示例中,每行都会有<form>
,因此您可以在每行的末尾添加一个提交按钮来提交该行的数据。
但你也可以通过其他方式做到这一点:
<form>
,这样您就可以拥有一个表单并可以提交所有行数据以收集<form>
,然后通过javascript填充表单中的值,然后提交。我把这个留给你弄清楚。
免责声明:我尚未测试此代码。但根据我的理解,这应该有效。 : - )子>