Frage

I have a listview div on screen and I have added itemDataSource to it successfully

var lettersList = new WinJS.Binding.List(jsonArrayForClearance);
var list_ = document.getElementById("prodListView").winControl;
list_.itemDataSource = lettersList.dataSource;
list_.itemTemplate = document.getElementById("tileTemplate");
list_.forceLayout();

Now in each item I have added a custom input type for user to specify(using template). I want to iterate through all the items of list and obtain the value of that input type in an array. how can I do it?

EDIT: My question is to access custom input type declared in list items. As such we use following code to access any input type named "inpT"

document.getElementById('inpT');

but how to access the same from list item? can I use Following code(as suggested by user2608614)

var listView = document.getElementById("prodListView").winControl;
var list = listView.itemDataSource.list;
for (var i = 0; i < list.length; i++) {
   var item = list.getAt(i);
   item.getElementById('inpT');
}
War es hilfreich?

Lösung

You can iterate through the list elements like this:

    var listView = document.getElementById("prodListView").winControl;
    listView.itemDataSource.getCount()
    .done(function(count) {
        for (var i = 0; i < count ; i++) {
            listView.itemDataSource.itemFromIndex(i)
            .done(function (item) {
                //***item will contain your property
             });
        }
    });

Is not the best solution as it make it difficult to chain the promises, I'm also looking for a better one. But it works.

Andere Tipps

Since you're using a Binding.List you can just iterate through that much like an array.

var listView = document.getElementById("prodListView").winControl;
var list = listView.itemDataSource.list;
for (var i = 0; i < list.length; i++) {
    var item = list.getAt(i);
    // do something with this item
}

The only thing to remember is that it doesn't support [] and instead you have to use .getAt() and .setAt().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top