Cell renderers execute during grid rendering and cell updates. Avoid expensive operations like API calls or complex calculations that could impact performance. For formula-driven values, use calculated columns instead.
"linkWithIcon": "function(info) { if(!info.value) return; var html = '<div class=\"custom-link\">'; html += '<span class=\"icon\"></span>'; html += '<span class=\"text\">' + info.value + '</span>'; html += '</div>'; $(info.cell).html(html); }"
When defining renderers in risksheet.json, escape double quotes with backslashes: \". For complex renderers with extensive HTML, consider storing the function in an external JavaScript file and referencing it via script injection.
Custom renderers do not execute during comparison/baseline mode. If your renderer provides critical visual information, users may lose context when comparing revisions. Consider using conditional formatting with CSS classes for styling that persists in comparison mode.
Renderer doesn’t execute: Verify the cellRenderer value exactly matches the key in cellDecorators. Check browser console for JavaScript syntax errors.jQuery not working: Ensure you’re wrapping DOM elements with $(info.cell). The raw info.cell is a DOM element, not a jQuery object.Rendering flickers: Renderers execute frequently. Avoid DOM manipulation that causes reflow. Use CSS class toggles instead of direct style manipulation when possible.Changes don’t persist on save: Renderers only affect display, not data. To modify actual work item values, use formulas instead.