我遇到了需要在JavaScript中使用renderURL的情况。
我有一个包含很多行数据的aui-datatable。单击任何行后,我需要调用渲染URL来加载下一个视图。
通常,我以前通过在onClick事件中编写renderURL来使用按钮时的renderURL。即
aui:button name =“ TestButton” onClick =“ ”
但是在当前情况下,控件将位于我的数据表的委托函数中,即单击处理程序函数,该函数是:-
Y.delegate('click', function(e) {
var target = e.currentTarget;
record = this.get('recordset').getRecord(target.get('id')).getValue();
alert(record.name);
//HERE I NEED TO CALL RENDER URL AND LOAD NEXT JSP PAGE
// after fetching current row values. i.e, send record.name to next jsp file
}, '#myTable', 'tr', dt);
最佳答案
AUI().use('liferay-portlet-url', function(A) {
var url=Liferay.PortletURL.createRenderURL();
url.setPortletId('currentPortletId');
url.setParameter('name','value');
A.one(document.createElement('a')).attr('href',url).simulate('click');
})
上面的代码将有助于您满足要求。将其放在数据表行的click事件处理函数中。
注意:只需根据您的要求替换上面代码中的currentPortletId,名称和值,您也可以单独加载“ liferay-portlet-url”模块。