0

拉动尝试使用列表视图的数据过滤器属性,但它的工作就像一个普通的HTML列表视图收到有关“刷新”的列表视图 HTML代码中的一些错误:显示在列表视图中的数据从数据库

<html lang="en" dir="ltr"> 
<head> 
<link rel="stylesheet" href="css/app/app-style.css"/> 
<link rel="stylesheet" href="css/lib/jquery.mobile.structure-1.1.1.css"/> 
<link rel="stylesheet" href="css/lib/jquery.mobile.theme-1.1.1.css"/> 
<link rel="stylesheet" href="css/lib/simpledialog.min.css"/> 
<link rel="stylesheet" href="css/lib/jquery-ui-1.10.2.custom.css"/> 
<link href="css/lib/mobiscroll.css" rel="stylesheet" type="text/css"/> 
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
<script type="text/javascript" src="js/lib/jquery.js"></script> 
<script type="text/javascript" src="js/lib/jquery-ui-1.10.2.custom.js"></script> 
<!-- <script type="text/javascript" src="js/lib/jquery.mobile-1.1.1.js"></script> --> 
<script type="text/javascript" src="js/lib/jquery.validate.js"></script> 
<script type="text/javascript" src="js/lib/additional-methods.js"></script> 
<script type="text/javascript" src="js/lib/cordova-2.0.0.js"></script> 
<script type="text/javascript" src="js/lib/jqm.page.params.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 
<script type="text/javascript" defer>  
$(document).ready(function() 
{ $('#viewtag').on('click',function(e) 
    { 
     e.preventDefault(); 
     getRegisterdUser(); 
     $('#viewinformation').show(); 
    }); 
}); 
</script> 
</head> 
<body> 
    <div data-role="page" id="logininfo" data-theme="b"> 
     <div data-role="content"> 
      <div class="ui-grid-a" data-theme="a"> 
       <div class="ui-block-a" data-theme="e" style="width:50%;"><a href="#" id="viewtag" data-role="button">VIEW</a></div> 
      </div> 
     </div> 
    </div> 
    <div data-role="page" id="viewinformation" data-theme="d"> 
     <div data-role="header"> </div> 
     <div data-role="content"> 
      <ul id="list" data-role="listview" data-filter="true" data-filter-placeholder="Search Student Name..." data-filter-theme="e" style="margin-top:20%;"> 
      </ul> 
     </div> 
    </div> 
</body> 
</html> 

(采写在alldatabsae.js文件)jQuery代码从拉的LocalDB数据和列表视图

var db; 
    function getRegisterdUser() 
{ 
    var query = 'SELECT username FROM loginTable'; 
    console.log("query for username selection:" + query); 
    db.transaction(function(tx) 
    { 
    tx.executeSql(query,[],successCBofUsername,errorCBofUsername) 
    },errorCB,successCB); 

} 

function successCBofUsername(tx,results) 
{ 
    var resultslength = results.rows.length; 
    if(results!= null && results.rows.length > 0 && results.rows != null) 
     { 
     for(var i = 0; i <resultslength; i++) 
      { 
      var name = results.rows.item(i); 
      $('<li>'+ name.username +'</li>').appendTo($('#list')); 
      } 
     $('#list').listview('refresh'); 
     //$('#displayinfo').empty().append('html').trigger('create'); 
     } 

    else 
     {alert("no records exists");} 
} 
function errorCBofUsername() 
{ 
alert("error of usernmae query"); 
} 

只显示用户名,但得到错误:
1.未捕获的错误:不能调用在初始化之前ListView的方法;尝试调用方法'刷新'http://code.jquery.com/jquery-1.8.2.min.js:2
2.未捕获错误:在初始化之前无法在列表视图上调用方法;试图在file:///android_asset/www/js/lib/jquery.js:506 得到错误在这行代码

$('#list').listview('refresh'); 

回答

1

调用方法“刷新”你应该使用:

$('#list').listview().listview('refresh'); 

由于列表视图是动态创建和现实中不存在,则首先必须在其标记可以被增强之前被初始化。

要找出为什么看看我的其他答案:jQuery Mobile: Markup Enhancement of dynamically added content。搜索章:标记增强问题

+0

感谢您的回复无论如何,我的代码工作fine.i只是因为jquery插件而出现错误。我已经管理插件,现在它的工作正常 – Erum 2013-04-06 11:30:06

1

只需更换下方的功能在你的代码。

function successCBofUsername(tx,results) 
{ var listdata=''; 
    var resultslength = results.rows.length; 
    if(results!= null && results.rows.length > 0 && results.rows != null) 
     { 
     for(var i = 0; i <resultslength; i++) 
      { 
      var name = results.rows.item(i); 
      listdata+='<li>'+ name.username +'</li>'; 
      } 

      $("#list").append(listdata).listview('refresh'); 
      } 

    else 
     {alert("no records exists");} 
} 
+0

感谢您的回复无论如何,我的代码工作fine.i只是因为jquery插件错误。我已经管理了插件,现在它的工作正常 - – Erum 2013-04-06 11:30:33

相关问题