Desidero aggiungere un collegamento ipertestuale/pulsante in ogni riga di jqgrid, che attiva una funzione javascript personalizzata. Stanco di varie prove.collegamento ipertestuale/pulsante con chiamata di funzione personalizzata in jqgrid
jQuery('#ProductListGrid').jqGrid({
url: '/Product/ProductListGrid',
datatype: 'json',
multiselect: true,
height: 250,
autowidth: true,
mtype: 'GET',
loadComplete: addlinks,
colNames: ['ProductId', 'ProductName', 'edit'],
colModel: [
{ name: 'ProductId', index: 'ProductId',key:true, width: 70, hidden: true, editable: true, size: 5 },
{ name: 'ProductName', index: 'ProductName', width: 70, editable: true },
{ name: 'edit', index: 'edit', width: 70},
],
pager: jQuery('#ProductListGrid_pager'),
});
function addlinks() {
var ids = jQuery("#ProductListGrid").getDataIDs();
alert(ids);
for (var i = 0; i < ids.length; i++) {
be = "<a href='#' style='height:25px;width:120px;' type='button' title='Slet' onclick=\"ff()\" >Slet</>";
jQuery("#ProductListGrid").jqGrid('setCell', ids[i],'edit','', { act: be });
}
//for (var i = 0; i < ids.length; i++) {
// jQuery("#ProductListGrid").setCell(i, 'edit', '<a href="#">edit</edit>');
//}
}
function ff()
{
alert("hi");
}
Il codice negli addlinks in sta per essere eseguito ma non appare nulla nella colonna. Ho provato a utilizzare anche la formattazione personalizzata, ma non ho potuto visualizzare il testo personalizzato "Modifica" e il collegamento non fa scattare il metodo js.
Hai provato il 'formatter'? se è così puoi condividerli o fornire la [demo] (http://jsfiddle.net) ... – GGG
Ho aggiunto un'altra colonna alla griglia, che mostra link {name: 'ProductId', formatter: 'showlink', formatoptions: {baseLinkUrl: '/ Product/ProductEdit /', addParam: '& action = edit'}} –
Ti consiglio di leggere [la risposta] (http://stackoverflow.com/a/14537512/315935) e [questo ] (http://stackoverflow.com/a/13765086/315935) che mostra come utilizzare 1) formattatore personalizzato per posizionare il testo/collegamento/pulsante nella colonna 'modifica' e 2) come usare invece la callback 'beforeSelectRow' dell'attributo 'onclick' per eseguire qualsiasi codice JavaScript al clic sul link/pulsante ... – Oleg