Forum


19:11

01/09/2008

I have a grid that uses inline editing. One of the column contains a large amount of text so I decided to create a link that would execute some javascript that would display the text in a dialog and allow editing. After trying the standard link formatter I decided to write a custom formatter to format the link to call the javascript. Here is a simple example of how the custom formatter works:
function formatNoteLink(cellvalue, objects, rowObjects){
if(cellvalue.length==0)
cellvalue = "No note";
var formattedLink = "<a href=javascript:alert('"+cellvalue+"')>'Click for note'</a>";
return formattedLink;
}
If the cell value was blank what I would expect is that the returned value would look something like this:
<a href=javascript:alert('No note')>'Click for note'</a>
Instead I see something like this:
<a href="javascript:alert('No" note="" )="">'Click for note'</a>
It seems that the blanks in the cellvalue cause the string to be parsed incorrectly. I don't know if this is a javascript issue or is something that jqgrid is causing.
I am running jqGrid 3.7.1
Ideas?
Thanks,
Pete
03:07

01/09/2008

OK. So I had an epiphany when I looked at the output. It needed to be ESCAPED so that the blank values came through correctly. So the corrected function now looks like:
function formatNoteLink(cellvalue, objects, rowObjects){
if(cellvalue.length==0)
cellvalue = "No note";
var formattedLink = "<a href=javascript:alert('"+escape(cellvalue)+"')>Click for note</a>";
return formattedLink;
}
Most Users Ever Online: 715
Currently Online:
63 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66