亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MUI如何實現上拉加載和下拉刷新效果

發布時間:2021-06-29 09:49:00 來源:億速云 閱讀:290 作者:小新 欄目:web開發

這篇文章主要介紹了MUI如何實現上拉加載和下拉刷新效果,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

編寫存儲過程分頁(此處使用T-SQL)

CREATE PROC [dbo].[Common_PageList]
(
@tab nvarchar(max),---表名
@strFld nvarchar(max), --字段字符串
@strWhere varchar(max), --where條件 
@PageIndex int, --頁碼
@PageSize int, --每頁容納的記錄數
@Sort VARCHAR(255), --排序字段及規則,不用加order by
@IsGetCount bit --是否得到記錄總數,1為得到記錄總數,0為不得到記錄總數,返回記錄集
)
AS
declare @strSql nvarchar(max)
set nocount on;
if(@IsGetCount = 1)
begin
 set @strSql='SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhere
end
else
begin
 set @strSql=' SELECT * FROM (SELECT ROW_NUMBER() 
 OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere
 WHERE rownum BETWEEN ' + CAST(((@PageIndex-1)*@PageSize + 1) as nvarchar(20)) + ' and ' + cast((@PageIndex*@PageSize) as nvarchar(20))
end

print @strSql
exec (@strSql)

set nocount off;

webApi接口(ADO.NET部分封裝了,此處是調用形式)

/// 測試mui下拉刷新
    /// </summary>
    /// <param name="flag"></param>
    /// <returns></returns>
    [HttpPost]
    public object test(JObject data)
    {

      using (var db = new DbBase())
      {
        SqlParameter[] arr = { 
                   new SqlParameter{ ParameterName="tab",Value=data["tab"].ToString()},
                   new SqlParameter{ ParameterName="strFld",Value=data["strFld"].ToString()},
                   new SqlParameter{ ParameterName="strWhere",Value=data["strWhere"].ToString()},
                   new SqlParameter{ ParameterName="PageIndex",Value=Convert.ToInt32(data["PageIndex"])},
                   new SqlParameter{ ParameterName="PageSize",Value=Convert.ToInt32(data["PageSize"])},
                   new SqlParameter{ ParameterName="Sort",Value=data["Sort"].ToString()},
                   new SqlParameter{ ParameterName="IsGetCount",Value=Convert.ToInt32(data["IsGetCount"])},
                   };


      return  RepositoryBase.ExecuteReader(db, "Common_PageList", arr);


      }

頁面實現

<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <title>Hello MUI</title>
    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">

    <link rel="stylesheet" href="../css/mui.min.css" rel="external nofollow" >
    <style type="text/css">
      
       
    </style>
  </head>
  <body>
    
      <header class="mui-bar mui-bar-nav">
      <h2 class="mui-title">下拉刷新(單webview模式)</h2>
    </header>
    
    <div id="pullrefresh" class="mui-content mui-scroll-wrapper">
      <div class="mui-scroll">
        
          <ul id="container" class="mui-table-view mui-table-view-chevron"></ul>
      
      </div>
    </div>
     <ul id="temp" class="mui-table-view" >
         <li class="mui-table-view-cell">
           <a class="mui-navigate-right">
             @name
           </a>
         </li>
        
       </ul>
    
    <script src="../js/mui.js" type="text/javascript" charset="utf-8"></script>
    <script>
  
        /**
         數據源分頁參數對象
         * */
        var obj={ tab:'SystemUsers',
              strFld:'code,Username',
              strWhere:'1=1',
              PageIndex:1,
              PageSize:10,
              Sort:'Username',
              IsGetCount:0,
              pageCount:0
            }
        
      //webApi服務器接口  
      var apiUrl="http://192.168.200.114:8123/api/Common/Base/test";
      
      
        /**
         * 定義數據源按什么html方式展示,動態生成html字符串的邏輯
         **/        
        var drawHtml=function(data){
            var html=""
             for (var i=0;i<data.length;i++) 
             {
              var temp=document.getElementById("temp").innerHTML; //模板
              html+=temp.toString().replace('@name',data[i].Username); //替換參數疊加
            }
             
           return html;
        }
    
      mui.ready(function(){
       /**
         MUI配置項
         * */    
      mui.init({
        pullRefresh: {
          container: '#pullrefresh',
          down: {
            callback: pulldownRefresh
          }, //END 下拉刷新
          up : {  
             contentrefresh : "正在加載...",//可選,正在加載狀態時,上拉加載控件上顯示的標題內容
             contentnomore:'沒有更多數據了',//可選,請求完畢若沒有更多數據時顯示的提醒內容;
             callback :pullupRefresh //必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據;
          } //END 上拉加載
        }
      });
             
        //統計:數據總數、分頁總數  
        obj.IsGetCount=1;           
        loadData(apiUrl,obj,0);
       
        //初始化列表數據(第一頁)
        obj.IsGetCount=0;    
         loadData(apiUrl,obj,0,"down",function(data){           
           //此處實現動態繪制DOM的邏輯,根據數據源自行處理要展示的html方式                     
           return drawHtml(data);
           
         });
        
        
      });
             
      /*
       讀取數據源
       url:api地址
       dataObj:數據源分頁查詢參數對象
       Timeout:指定多少時間后繪制頁面DOM展示對象,
               動態生成的元素代碼包含在一個setTimeout函數里,
               用  setTimeout,主要對于下拉刷新間隔時間
       loadType:加載方式:up(上拉加載)、down(上拉刷新)    
       drawFunction:回調函數,處理拿到數據源,繪制DOM展示界面的html
                   ,要接收返回的html字符串
       * */
      
      var loadData=function(url,dataObj,Timeout,loadType,drawFunction){
        
        mui.ajax(url, {
                type: "post",
                data:dataObj,
                async:false,
                headers: {'Content-Type': 'application/json'},
                success: function(data) {
                    
                  //統計出數據總數
                  if(dataObj.IsGetCount==1)
                  {                                    
                    obj.pageCount=Math.ceil(parseInt(data[0].Column1)/obj.PageSize) ;                   
                     return;
                  }
          
                  setTimeout(function() {      
                                   
                  //動態繪制出的Dom元素,結合數據展現
                  var html=  drawFunction(data);
                     
                  if(loadType=="up")  //上拉加載
                  {
                        if(obj.PageIndex==obj.pageCount)
                        {
                          //參數為true代表沒有更多數據了。
                          mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
                        }
                        else
                        {
                          mui('#pullrefresh').pullRefresh().endPullupToRefresh(); 
                        }
                      
                    //將下一頁數據追加到容器  
                    document.getElementById("container").innerHTML=document.getElementById("container").innerHTML+html;
                  }
                  else if(loadType=="down") //下拉刷新
                  {
                    // 該方法的作用是關閉“正在刷新”的樣式提示,內容區域回滾頂部位置
                    mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); 
                    
                    //將第一頁數據覆蓋到容器
                    document.getElementById("container").innerHTML=html;
                    
                    //啟用上拉加載
                    mui('#pullrefresh').pullRefresh().enablePullupToRefresh();
                     
                  } 
                  
                }, Timeout);//END setTimeout();
      
                },//END success();
                
                error: function(xhr, type, errorThrown) {                 
                      console.log(type);
                }//END error();
                
          });//END ajax();
        
      }//END loadData();
            
     /**
       * 下拉刷新具體業務實現
       */
      function pulldownRefresh() {  
          console.log('重置數據,初始到第一頁');
          obj.PageIndex=1;
  
           loadData(apiUrl,obj,1000,"down",function(data){
           //此處實現動態繪制DOM的邏輯,根據數據源自行處理要展示的html方式                     
           return drawHtml(data);
             
           });
    
    } //END pulldownRefresh() 下拉刷新函數
        
  
      /**
       * 上拉加載具體業務實現
       */
      function pullupRefresh() {
        obj.PageIndex++;//當前頁累加,加載下一頁的數據       
        console.log("加載第:"+obj.PageIndex+"頁");
        console.log("頁總數:"+obj.pageCount);
          
       loadData(apiUrl,obj,1000,"up",function(data){
           //此處實現動態繪制DOM的邏輯,根據數據源自行處理要展示的html方式                     
           return drawHtml(data);
           
       });
        

      }
      
    

    </script>
  </body>

</html>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“MUI如何實現上拉加載和下拉刷新效果”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mui
AI

开原市| 东平县| 屏南县| 安宁市| 宽城| 区。| 崇阳县| 上蔡县| 商都县| 遂溪县| 甘德县| 资源县| 庆城县| 嫩江县| 湖口县| 固原市| 西盟| 乌拉特后旗| 三河市| 濉溪县| 眉山市| 特克斯县| 中方县| 南召县| 黑龙江省| 慈利县| 平乐县| 贵港市| 盱眙县| 安吉县| 娄烦县| 墨竹工卡县| 清苑县| 武隆县| 普兰店市| 崇文区| 湘乡市| 黎川县| 新巴尔虎左旗| 阿拉善右旗| 新安县|