我试图在第一次呈现表格时从 ajax 调用更改列中显示的图标。如果我只有: return "<i class='fas fa-eye fa-xs'></i>";这是列设置{title:"Review",formatter:reviewIcon, width:40, headerVertical:true, align:"center", cellClick:reviewCellClick },我的 ajax 调用非常简单,也许不是最好的,但它得到了我想要的结果。返回值为 0 或其他值。我只关心0。var reviewIcon = function(cell, formatterParams, onRendered){ //plain text value var cell = cell.getData(); var ag = cell.accessgroups; var xhr = new XMLHttpRequest(); xhr.open("GET", "includes/getaccessgroups.php?ag="+ag, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var returned = xhr.response; if(returned < 1 ){ return "<i class='fas fa-unlink fa-xs'></i>"; } else { return "<i class='fas fa-eye fa-xs'></i>"; } } } xhr.send(); // return "<i class='fas fa-eye fa-xs'></i>";};基本上,如果它是 0,我希望它显示未链接,如果它是其他东西,我希望它显示 unlinked。如果返回值为0,则显示,fa-unlink否则显示fa-eye。非常感谢任何帮助。
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
恐怕你不能这样做,制表器中的格式化程序必须是同步的,以便表格能够快速呈现(否则表格必须在呈现每一行之前发出请求,这会使表格变得非常口吃滚动)。
这意味着格式化程序将在任何 ajax 请求返回之前完成执行。正确的方法是在将数据加载到表中之前更新数据,并为每行提供正确的值。
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消