如何用 dojo 增强网格中的文本替换超链接?

Posted

技术标签:

【中文标题】如何用 dojo 增强网格中的文本替换超链接?【英文标题】:How to replace hyperlink with text in dojo EnhanceGrid? 【发布时间】:2017-01-27 09:52:12 【问题描述】:

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

For example 
<th field="mobileNumber"  noresize="true" formatter="formatMobileNumber"  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

【问题讨论】:

请贴出代码 【参考方案1】:

您要显示的文本应由格式化程序返回。您可以让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();

【讨论】:

以上是关于如何用 dojo 增强网格中的文本替换超链接?的主要内容,如果未能解决你的问题,请参考以下文章

编辑 Dojo 增强网格时的空间

如何用html doc中的超链接替换纯url

DoJo 增强的网格动态更新约束不起作用

excel如何用超链接直接打开文件

如何用随机数组元素替换文本?

如何用 Greasemonkey 的用户脚本替换 JSON 字符串中的文本