0

さまざまなセクションを持つグリッド アプリを作成しようとしていますが、各セクションが特定のリストビューにフェッチされていますが、リスト内のオブジェクトを適切に水平方向にスクロールするために、ページ全体をカバーするリストビューを 1 つしか持つことができないという問題が発生しました。別の場所がないことを意味します。これは私が今使っているコードです:

WinJS.xhr({ url: "http://search.twitter.com/search.json?q=%23windows8&rpp=100}).then(

            function (response) {
                var json = JSON.parse(response.responseText.toString());
                var list = new WinJS.Binding.List(json.result);
                gridView1.winControl.itemDataSource = list.dataSource;

                //gridView1 is ID of listview 

            }

上記のコードを使用すると、結果配列を含むオブジェクトのグリッドを簡単に表示し、それらをリストにバインドできます。ただし、WinJS グリッド アプリの既定のインターフェイスとして表示されるように、異なる URL に対して複数の同様のリストビューが必要です。

より明確にするために、これが私が望むものです-Twitter API URL1を使用してグリッドの最初のセクションにあるTwitterユーザー名と、隣接するグリッドにTwitter検索結果が必要なため、URL2を使用して別のリストビューbを使用する必要があります。

これの修正方法を見つけるにはどうすればよいですか。あなたの助けに感謝。

4

2 に答える 2

1

ええ、さまざまなリストからのすべての異なるアイテムに共通するものを考え出し、データを単一のグループ化されたリストに投影することは1つのオプションです。あなたはあなたがやろうとしていたことをあきらめたくないかもしれません。フレックスボックスでラップされたページに複数のListViewを配置する場合、スクロールに問題はありません。ListViewデモで私のcodeSHOWアプリを見ると、大まかに同等のものがあることがわかります。Windowsは、実際には、パンを処理する方法について非常に賢いです。

**編集**

これが私が話していることの大まかな例です。繰り返しになりますが、 codeSHOWのListViewデモでこの実用的な例を見つけることができます。

<!-- HTML snippet -->
<div class="hub">
  <div>
    <div id="list1" data-win-control="WinJS.UI.ListView"></div>
  </div>
  <div>
    <div id="list2" data-win-control="WinJS.UI.ListView"></div>
  </div>
  <div>
    <div id="list3" data-win-control="WinJS.UI.ListView"></div>
  </div>
</div>

/* CSS snippet */
.hub {
  display:-ms-flexbox; /* this will lay the lists out horizontally */
  overflow-x:auto; /* set the flexbox to scroll its overflow */
}

/* select each of the sections */
.hub > div {
  padding-right:80px; /* 80px of space between "sections" */
}

/* choose whatever sizes you want for your list views. You may want to make them wide
enough that they don't scroll because it can get a little awkward to have scrolling
within scrolling */
[data-win-control=WinJS.UI.ListView] {
  width: 640px;
  height: 480px;
}
于 2013-01-15T17:56:35.407 に答える
0

結果セットを単一のデータソースに集約することで、これを解決できます。

これを行うには、グループ化関数で設定されたデータにデータを分散WinJS.Binding.Listさせ、グループ化の方法がわかるようにデータを属性付けします。のグループ化の例は、WinJS.Binding.Listファイル/新規/プロジェクトを実行するときにVisualStudioにある「グリッド」テンプレートにあります。

または、独自のデータを作成することもできます。VirtualizedDataSourceこれについては、MSDNのすばらしいチュートリアルがここにあります。

于 2013-01-15T17:10:30.117 に答える