1

私はjsonなどに不慣れです..再帰テーブルをネストされたul要素にバインドしようとしています。親アイテムをli要素にバインドすることにしたので、ユーザーがアイテムをクリックすると、その子をロードしたいと思います。それは最初の子の束に対して機能しますが、内部レベルをロードしたい場合、メソッドを通過して適切なデータをフェッチしても、現在のレベルが表示されます。チェックすると、内部メソッドが2回呼び出されることがわかりました...

それが私が呼び出しているメソッドです。最初は ID=0 で、その後は currentParentID で:

 public static IEnumerable GetItemsByParentID(int pID)
 { return from ctg in _ctx.Categories where ctg.CategoryParentID == pID select ctg; }

MyTreeview.js :

$(document).ready(function () {
$.ajax({
    type: "POST",
    url: "Default2.aspx/GetItemsByParentID",
    data: "{'pID':'0'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        $('#MyContainer').setTemplateURL ('MyCtg.htm',null, { filter_data: false });
        $('#MyContainer').processTemplate(msg);
    }
});
});

function LoadChildren(value) {

 $.ajax({
    type: "POST",
    url: "Default2.aspx/GetItemsByParentID",
    data: "{'pID':'"+value+"'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
        $('#child'+value).setTemplateURL('MyCtg.htm',null, { filter_data: false });
        $('#child' + value).processTemplate(msg);
    }
});

}



MyCtg.htm: 
<ul>
{#foreach $T.d as post}
<li  onclick="LoadChildren({$T.post.CategoryID})">
    {$T.post.CategoryName} 
    <ol id="child{$T.post.CategoryID}"></ol>
</li>
{#/for}

Default.aspx :  <div id="MyContainer"> </div>

ここで何が間違っているのですか?!

4

1 に答える 1