如何用 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 增强网格中的文本替换超链接?的主要内容,如果未能解决你的问题,请参考以下文章