у меня есть это `ч: outputLink», который я использую, чтобы открыть новую страницу, когда я нажимаю на JSF строке таблицы:Открыть новую страницу, когда я нажимаю на столе JSF
<h:outputLink id="lnkHidden" value="page.html" style="text-decoration:none; color:white;">
<f:param name="id" value="#{item.value}" />
</h:outputLink>
Я использую этот JavaScript чтобы открыть новую страницу при нажатии на строку:
// For clicking on a row and opening new page
function addOnclickToDatatableRows() {
//gets all the generated rows in the html table
var trs = document.getElementById('form:dataTable').getElementsByTagName('tbody')[0]
.getElementsByTagName('tr');
//on every row, add onclick function (this is what you're looking for)
for (var i = 0; trs.length > i; i++) {
var cells = trs[i].cells;
for(var j=1; j < cells.length; j++){
cells[j].onclick = new Function("rowOnclick(this.parentElement)");
}
}
}
function rowOnclick(tr) {
var elements = tr.cells[0].childNodes;
for(var i = 0; elements.length > i; i++) {
if ((typeof elements[i].id != "undefined") && (elements[i].id.indexOf("lnkHidden") > -1)) {
location.href=elements[i].href;
break;
}
}
return false;
}
Я обновил код так:
<h:commandLink id="lnkHidden" style="text-decoration:none; color:white;"
actionListener="#{bean.pageRedirect}">
<f:setPropertyActionListener target="#{bean.sessionValue}" value="#{item.value}" />
</h:commandLink>
управляемый компонент:
public void setSessionValue(Object value)
{
...........
}
public String pageRedirect()
{
return "/DatacenterProfile.html";
}
Оказалось, что JavaScript работает нормально, потому что я изменил на h:commandLink
. Можете ли вы помочь мне решить эту проблему?
PS
Я тестировал использовать h:commandButton
<h:commandButton id="lnkHidden" style="text-decoration:none; color:white; display:none"
action="#{bean.pageRedirect}">
<f:setPropertyActionListener target="#{bean.sessionValue}" value="#{item.value}" />
</h:commandButton>
Когда я нажимаю на столе вр Я всегда перенаправлены на страницу
http://<ip>:8080/app/undefined
Я полагаю, что проблема заключается в код JavaScript. Любые идеи, как это исправить?
Если вы хотите открыть ссылку в новой страницы, просто используйте 'target =" _ blank "' в вашем ''. –