1

リストビュー項目をクリックすると、オブジェクトのモーダルビューが表示され、その詳細がすべて表示されるようにしようとしています。クリックしたリストビュー項目を参照する方法を見つけようとしていますが、ちょっと困惑しています。 この JS Fiddleは、私のものと同じリストビュー設定です。クリックされたアイテムを参照する方法についてのヘルプは素晴らしいでしょう。

このようなドキュメントをいくつか見つけましたが、javascriptを理解するのに苦労しています

   var lvData = $('#eventFeed').data('kendoListView');
   var index = $(this).parents('.event:first').index() + lvData.eventInfo._skip;

   var itemInfo = lvData.eventInfo._data[index];
   $('<div id="eventInfo"></div>').appendTo(document.body);
   $('views/eventInfo').kendoWindow();
4

1 に答える 1

0

最初:次のようなフラグとしてセットIDを取得できます:

<a data-role="button" class="view" data-click="onClick" id="#=id#">Details</a>

2 番目: Kendo-template を使用してテンプレートにデータを渡すことができます: http ://docs.kendoui.c​​om/getting-started/framework/templates/overview

<div id="modal" data-role="modalview" style="width: 95%; height: 95%;">
</div>

<script id="javascriptTemplate" type="text/x-kendo-template">
    <ul>
    #=data['indexKey']#
    </ul>
</script>

 <script type="text/javascript">
    function onclick(e)
    {
        var dataSet = $('#eventfeed').data("kendoMobileListView").dataSource._pristine; //raw data-source
        var currentData;
        var curID = e.sender.element.attr('id');
        for(var i=0; i < dataSet.length; i++)
        {
            if(dataSet[i].id == curID)
            {
                currentData = dataSet[i];
                break;
            }           
        }
        var template = kendo.template($("#javascriptTemplate").html());
        var htmlCode = template(currentData); //Execute the template
        $("#modal").html(htmlCode); //Append the result
        $("#modal").data("kendoMobileModalView").open();
    }
</script>

データに が含まれていない場合は、 uid (kendo-ui によって自動生成されたもの) をID使用できます。したがって、次の方法で dataSet を取得できます。

$('#eventfeed').data("kendoMobileListView").dataSource._data

次に、次のようなコード:

 <script type="text/javascript">
    function onclick(e)
    {
        var dataSet = $('#eventfeed').data("kendoMobileListView").dataSource._data;
        var currentData;
        var curUID = e.sender.element.closest('li').attr('data-uid');
        for(var i=0; i < dataSet.length; i++)
        {
            if(dataSet[i].uid == curUID)
            {
                currentData = dataSet[i];
                break;
            }           
        }
        var template = kendo.template($("#javascriptTemplate").html());
        var htmlCode = template(currentData); //Execute the template
        $("#modal").html(htmlCode); //Append the result
        $("#modal").data("kendoMobileModalView").open();
    }
</script>
于 2013-04-26T11:06:11.057 に答える