0

我正在使用有 5 列的 dojo EnganceGrid,第五列是图像超链接。我想用特定列的文本行替换超链接。例如,我点击第五列的第二行。当我单击图像时,我的图像超链接将替换为一些文本。任何人都可以帮助解决这个问题吗?

For example 
<th field="mobileNumber"  noresize="true" formatter="formatMobileNumber" width="10" cellClasses="alignTextCenter">Mobile Number</th>

<span style="display:none" id="defaultFormatMobileNumber_${ns}">
<a href="javascript:void(0);" onClick="showMobileNumber(event,valueToChange)">
<img src='/images/mobile.png' />
</a>
</span>

function formatMobileNumber(data, rowId){
var link = dojo.byId('defaultFormatMobileNumber').innerHTML;
link = link.replace("valueToChange",rowId);
return link
}

function showMobileNumber_<p:namespace/>(e,rowIdx){
//here I want to replace my link with some text
}
4

1 回答 1

0

您要显示的文本应由格式化程序返回。您可以为单击的行号showMobileNumber设置一些变量,例如clickedRow,并调整formatMobileNumber以考虑该变量:

clickedRow = -1;

function formatMobileNumber(data, rowId){
  if (clickedRow != rowId) {
    var link = dojo.byId('defaultFormatMobileNumber').innerHTML;
    link = link.replace("valueToChange",rowId);
    return link;
  }
  else {
    return "some text";
  }
}

function showMobileNumber_<p:namespace/>(e,rowIdx){
  clickedRow = rowIdx;
  // now the grid should probably be refreshed so that the formatter is 
  // re-applied. If variable 'grid' holds the grid:
  // grid._refresh();
}
于 2017-02-17T08:43:58.780 回答