【问题标题】:call recursive function in asp.net using json使用 json 在 asp.net 中调用递归函数
【发布时间】:2013-09-12 18:07:29
【问题描述】:

我是 json 和其他东西的新手.. 我正在尝试将递归表绑定到嵌套的 ul 元素。 我决定将父项绑定到一个 li 元素中,所以当用户单击该项时,我想加载它的子项。 它适用于第一批孩子,但是当我想加载内部级别时,虽然它通过我的方法并获取适当的数据,但仍然显示当前级别。当我检查时发现它两次调用内部方法...

这就是我调用的方法,第一次使用 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>

我在这里做错了什么?!

【问题讨论】:

    标签: jquery asp.net json


    【解决方案1】:

    当你有 onclick 事件会冒泡并调用父方法,所以你需要做的是通过使用停止传播:

    event.stopPropagation();
    

    【讨论】:

    • 它会调用什么父方法?
    • 据我了解,您有
    • (parent) 和内部更多
    • (child) 并且如果您点击一个孩子,它们都会响应点击,所以您会覆盖孩子的内容。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签