1

基礎となるデータに基づいて要素を条件付きで非表示にするテンプレートを備えた剣道UIリストビューがあります。例は次のとおりです。

<script type="text/x-kendo-template" id="template">
    <div class="product">
        <img src="../content/web/foods/#= ProductID #.jpg" alt="#: ProductName # image" />
        <h3>#:ProductName#</h3>
        <p>#:kendo.toString(UnitPrice, "c")#</p>
        <div>
          # if (Discontinued) { #
                Discontinued Product
          # } #
        </div>
    </div>
</script>

基礎となる dataSource 項目を変更して、次のコードで Discontinued を設定する場合:

data[index].set('Discontinued', true);    

インデックスが現在選択されているアイテムである場合、そのアイテムはフォーカスを失い、選択されなくなります。

次の Dojo の例http://dojo.telerik.com/UlOzeを参照して、リストからアイテムを選択し、廃止に設定してください。

この問題の解決策/回避策を見つけた人はいますか?

ありがとう。

- - - - - - - 最終的解決 - - - - - - -

以下の dimodi の回答に続いて、ソリューションをつなぎ合わせました。これを機能させるには、dataSource に schema -> model -> id プロパティを設定する必要があります。

現在選択されているデータ項目を最初にキャプチャします。

      var selectedItem = $(listElement).find(".k-state-selected");
      var selectedDataItem = list.dataItem(selectedItem);

2番目: .set を呼び出した後、データ項目を再検索し、k-state-selected クラスを設定します。リスト コンポーネントが uid を再生成しているため、これは必須です。

     if (selectedDataItem) {
        var newSelectedItem = list.dataSource.get(selectedDataItem.ProductID)
        var uid = newSelectedItem.uid;
        jQuery("[data-uid='" + uid + "']").addClass("k-state-selected");
      }

他の人に役立つ場合に備えて、元の道場を更新してこの解決策を示しました。

4

1 に答える 1