我有一个在多个地方使用的 ListView 模板,我想即时更改布局类型:
<div class="sorteditemslist" arial-label="sorted items"
data-win-control="WinJS.UI.ListView"
data-win-options="{layout: { type: WinJS.UI.ListLayout}}"
data-win-bind="winControl.itemDataSource: items.dataSource; winControl.iteminvoked: ItemInvoked;">
默认布局类型是WinJS.UI.GridLayout
但在某些情况下,我想将其更改为ListLayout
。
是的,这是可能的。我能够使用以下代码使其正常工作:
var listView = element.querySelector(".sorteditemslist").winControl;
WinJS.ui.setOptions(listView, { layout: { type: WinJS.UI.ListLayout }});
此外,请确保在模板中提取对布局的引用,或在代码中处理这两种情况。有关布局的详细信息,请参阅 msdn 页
正如@wloescher指出的,您可以使用:
listViewElem.layout = new WinJS.UI.GridLayout({ orientation: 'horizontal', maxRows: 1 });