简体   繁体   English

Windows 8 ListView计数始终为0 | winControl.selection.count(); 返回0

[英]Windows 8 ListView count is always 0 | winControl.selection.count(); returns 0

I am trying to create a new windows 8 app and I am trying to implement list views. 我正在尝试创建一个新的Windows 8应用程序,并且正在尝试实现列表视图。

My current problem is that document.querySelector('#myListView').winControl.selection.count(); 我当前的问题是document.querySelector('#myListView')。winControl.selection.count(); ALWAYS returns 0.. when I select, de-select the listview ,etc..I manually loaded my items in the listView, does that have anything to do with it? 总是返回0 ..当我选择时,取消选择listview等。我将项目手动加载到listView中,这和它有什么关系吗?

We need to add the selectionMode to 'multi' in the data-win-option of the ListView 我们需要在ListView的data-win-option中将selectionMode添加到'multi'

<div id="UserListView" data-win-control="WinJS.UI.ListView" style="border-top: 5px solid #000; min-width:500px;" 
           data-win-options="{
                               selectionMode:'multi',
                               itemTemplate:select('#itemsList'),
                               layout:{    
                               type:WinJS.UI.GridLayout}}"
         > 

    </div>

Then in the js file we can get the count of the selected listview item as bellow 然后在js文件中,我们可以将选择的listview项的计数如下所示

 var testCount = UserListView.winControl.selection.count();

Can you show your code, please? 可以显示您的代码吗? Because in my example this function wort correctly. 因为在我的示例中,此函数正确地产生了错误。 This code in dataExample.js file: dataExample.js文件中的以下代码:

(function () {
"use strict";

var dataArray = [
{ title: "Basic banana", text: "Low-fat frozen yogurt", picture: "images/60banana.png" },
{ title: "Banana blast", text: "Ice cream", picture: "images/60banana.png" },
{ title: "Marvelous mint", text: "Gelato", picture: "images/60mint.png" },
{ title: "Succulent strawberry", text: "Sorbet", picture: "images/60strawberry.png" }
];

var dataList = new WinJS.Binding.List(dataArray);

var publicMembers =
    {
        itemList: dataList
    };
WinJS.Namespace.define("DataExample", publicMembers);
})();


In default.js I create function, which display count of selected items 在default.js中,我创建了函数,该函数显示所选项目的数量

function someFunc(mouseEvent) {

var count = document.getElementById("basicListView").winControl.selection.count();
var dlg = new Windows.UI.Popups.MessageDialog(count);
dlg.showAsync().operatio;

} }


My default.html contains next code: 我的default.html包含以下代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>App1</title>

<!-- WinJS references -->
<link href="//Microsoft.WinJS.1.0/css/ui-white.css" rel="stylesheet" />
<script src="//Microsoft.WinJS.1.0/js/base.js"></script>
<script src="//Microsoft.WinJS.1.0/js/ui.js"></script>

<!-- App1 references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
<script src="/js/dataExample.js"></script>
</head>
<body>
<button id="btn" class="ui-button" onclick="someFunc(event)">click me</button>
<p id="button1Output"></p>

<div id="basicListView" data-win-control="WinJS.UI.ListView" data-win-options="{     itemDataSource : DataExample.itemList.dataSource }">

</div>
</body>
</html>


I use this MSDN example 我使用这个MSDN示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM