Javascript aui数据表中的动态renderURL

Javascript aui数据表中的动态renderURL,javascript,datatable,liferay,Javascript,Datatable,Liferay,我正在使用Liferay 6.2-ce-ga4,试图在aui数据表列中嵌入自定义renderURL。以下代码有效,除非我尝试从列格式化程序函数中调用以下代码行: var renderURL = Liferay.PortletURL.createRenderURL(); 调用此代码时,Eclipse控制台中不会生成任何错误代码(因为我是从Eclispe中启动Liferay的)。我所能告诉您的是,当我注释掉上面这一行时,我会得到一个正确生成的DataTable,但是在取消注释这一行之后,DataT

我正在使用Liferay 6.2-ce-ga4,试图在aui数据表列中嵌入自定义renderURL。以下代码有效,除非我尝试从列格式化程序函数中调用以下代码行:

var renderURL = Liferay.PortletURL.createRenderURL();
调用此代码时,Eclipse控制台中不会生成任何错误代码(因为我是从Eclispe中启动Liferay的)。我所能告诉您的是,当我注释掉上面这一行时,我会得到一个正确生成的DataTable,但是在取消注释这一行之后,DataTable就不会呈现了

代码的完整页面如下所示

<%@ page import="org.json.simple.JSONArray"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet"%>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%>
<%@ taglib uri="http://liferay.com/tld/util" prefix="liferay-util"%>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui"%>

<script src="http://cdn.alloyui.com/2.0.0/aui/aui.js"></script>
<link href="http://cdn.alloyui.com/2.0.0/aui-css/css/bootstrap.min.css" rel="stylesheet"></link>

<portlet:defineObjects />

<%
    JSONArray involvedParties = (JSONArray) renderRequest.getAttribute("involvedPartyDetails");
%>

<aui:script>
    YUI().use('aui-datatable', 'datatable-sort', 'liferay-portlet-url', function(Y) {

        var columns = [ {
            label : 'Involved Party Name',
            key : 'name',
            formatter : function(o) {
                // var renderURL = Liferay.PortletURL.createRenderURL();
                return '<a href="http://www.cnn.com/">' + o.data.name + '</a>';
            },
            allowHTML : true,
            sortable : true
        } ];

        var data = <%=involvedParties%>
        var dataTable = new Y.DataTable({
            columns : columns,
            data : data,
            scrollable : "y",
            height : "500px"
        }).render('#myDataTable');
    });
</aui:script>

<div id="myDataTable"></div>

';
},
allowHTML:是的,
可排序:正确
} ];
风险值数据=
var dataTable=新的Y.dataTable({
列:列,
数据:数据,
可滚动:“y”,
高度:“500px”
}).render(“#myDataTable”);
});
我的liferay-portlet.xml如下所示:

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_2_0.dtd">

<liferay-portlet-app>
    <portlet>
        <portlet-name>involved-party-list</portlet-name>
        <icon>/icon.png</icon>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>
            /js/main.js
        </footer-portlet-javascript>
        <css-class-wrapper>
            involved-party-list-portlet
        </css-class-wrapper>
        <add-default-resource>true</add-default-resource>
    </portlet>
    <role-mapper>
        <role-name>administrator</role-name>
        <role-link>Administrator</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>guest</role-name>
        <role-link>Guest</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>

涉案方名单
/icon.png
/css/main.css
/js/main.js
参与方列表portlet
真的
管理员
管理员
客人
客人
超级用户
超级用户
用户
使用者
对于如何为数据表中的每一行构建动态renderURL的任何建议,我们都将不胜感激

作为补充说明,我尝试用AUI()替换YUI(),但这也会导致数据表无法在浏览器中生成。对使用AUI和YUI的好处的评论也将不胜感激。

我使用Chrome的“开发者工具控制台”查看输出,并收到以下错误消息:

yui: NOT loaded: liferay-portlet-url

似乎我必须使用AUI()而不是YUI()来利用Liferay扩展

您自己给出了部分答案-但是,还有更多的问题:
已经提供了AUI。你可以把你的线路换掉

<aui:script>
    YUI().use('aui-datatable', 'datatable-sort', 'liferay-portlet-url', function(Y) {

YUI()。使用('aui-datatable','datatable sort','liferayportleturl',函数(Y){


并在打开的块中使用AUI作为标记。此标记中不需要额外的YUI或AUI块。

此处也讨论了:
<aui:script use="aui-datatable,datatable-sort,liferay-portlet-url">