2017-01-27 29 views
0

Я использую dojo EnganceGrid, у которого есть 5 столбцов, а пятый столбец - гиперссылка изображения. Я хочу заменить гиперссылку текстом на определенную строку столбца. Например, я нажимаю на вторую строку пятого столбца. Когда я нажму на изображение, а гиперссылка «Мой образ» заменит каким-то текстом. Может ли кто-нибудь помочь решить эту проблему?Как заменить гиперссылку на текст в dojo EnhanceGrid?

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 
} 
+0

Пожалуйста размещаете ваш код – vijay

ответ

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(); 
}