首页 > 解决方案 > 将另一个jsp文件中的图标菜单作为列添加到liferay中的数据表

问题描述

这里有 2 个表: 下表使用纯容器来显示从数据库填充表,而上面的表使用数据表。

但是,我希望复制上表中包含在 actions.jsp 中的用于编辑和删除操作的图标菜单的最后一列。

这是我在 view.jsp 中显示数据表的部分代码。

<%

List<Guestbook> guestbookList = GuestbookLocalServiceUtil.getGuestbooks(scopeGroupId);
request.setAttribute("guestbookList", guestbookList);
%>

  <table id="gbdb" class="table table-bordered table-striped" style="width:100%">
    <thead>
      <tr>
       <th>Name</th>
       <th>Status</th>
       <th>Action</th>
      </tr>
    </thead>
    <tbody>

  <c:forEach items="${guestbookList}" var="guestbook">
       <tr>
       <td>${guestbook.name}</td>
       <td>${guestbook.status}</td>
       <td><jsp:include page="${actions.jsp}" flush="true" /></td>
       </tr>
    </c:forEach>

    </tbody>
  </table>

但是,正如您所看到的,我的显示 actions.jsp 的功能与使用容器的方法不同,在容器中我可以使用引用路径

<td> <liferay-ui:search-container-column-jsp
            align="right" 
            path="/guestbookadminportlet/guestbook_actions.jsp" /></td>

请通过引用actions.jsp帮助我正确的显示方式

标签: javajqueryjspdatatableliferay

解决方案


如果使用 jQuery 数据表,则不应将整个 jsp 包含为操作列,

假设您需要添加 Delete book 操作,因此您的 td 应替换为以下代码。

<td> 
  <portlet:actionURL name="<%=DELETE_BOOK%>" var="deleteBookUrl">     
  <portlet:param name="bookId" value="${book.id}"/>                
  </portlet:actionURL> 
  <input type="button" onclick="location.href='${deleteBookUrl}'" value="Delete"/> 
</td>

希望这会帮助你。


推荐阅读