我遇到了需要在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”模块。

10-04 15:44