bui復選框select 異步加載數據


Bui/select 在加載數據源時,數據源如果采用$.post的方式獲取數據,則無法獲取到數據源,原因是bui加載屬於異步加載,在post執行完之前,bui已經加載完成。因此無法得到post返回的數據集。因此可將bui控制在post內部使用。獲取玩數據再去加載bui,解決bui/select 異步加載無法獲取數據問題。

 

function initTrunkLink(shortName) {

      var trunkLinkArr = [];

 

      $.post(contextPath + 'getIndexCommonAction/getAllIndex.cn', {

        shortName : shortName

      }, function(data) {

 

        var allIndex = eval(data);

 

        $.each(allIndex, function(i, index) {

           var obj = {};

           obj.value = index.id;

           obj.text = index.indexName;

           trunkLinkArr.push(obj);

        });

        // bui加載數據

         BUI.use('bui/select',function(Select){

               selectTrunkLink = new Select.Select({

               render:'#s3',

               valueField:'#trunkLink',

               multipleSelect:true,

               items:trunkLinkArr

               });

           selectTrunkLink.render();

           $.ajax({

              type : "POST",

              data:{"shortName" : shortName},

              url : contextPath + "getIndexCommonAction/getDataMap.cn",

              dataType : "json",

              async : false,

              success: function(data){

                 var indexData2 = eval(data);

                 if(indexData2.length!=0){

                    var indexs2=indexData2[0].id;

                    for(var i=1;i<indexData2.length;i++){

                      indexs2+=","+indexData2[i].id;

                    }

                    selectTrunkLink.setSelectedValue(indexs2);     

                 }

                     

              }

           });     

          

          });

      }, 'json');

}

並且在如果要初始化select,給select默認選中某個選項時,則不可以用$.post獲取,使用ajax獲取才可獲取到。有關異步加載問題找個時間整理一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM