如何从ajax调用中设置列中的图标

我试图在第一次呈现表格时从 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。


非常感谢任何帮助。


胡子哥哥
浏览 85回答 1
1回答

慕码人2483693

恐怕你不能这样做,制表器中的格式化程序必须是同步的,以便表格能够快速呈现(否则表格必须在呈现每一行之前发出请求,这会使表格变得非常口吃滚动)。这意味着格式化程序将在任何 ajax 请求返回之前完成执行。正确的方法是在将数据加载到表中之前更新数据,并为每行提供正确的值。
打开App,查看更多内容
随时随地看视频慕课网APP