PDA

View Full Version : مشکل در json , jquery با صدا کردن تابع بازگشتی با کلیک روی آیتم و فراخوانی از دیتابیس



angel5980
جمعه 22 شهریور 1392, 12:05 عصر
سلام
میخوام یه ساختار درختی لود کنم ولی فقط زمانی که روی آیتم ها کلیک میشه بره و بچه ها رو صدا بزنه
برای لود کردن سر شاخه و یک سطح از فرزندانش مشکلی نداره ولی وقتی روی فرزند کلیک میکنم که بره فرزندهای احتمالی رو صدا کنه دیگه چیزی برام نمیاره چون متد کلیکی که دارم صدا میکنم دوبار لود میشه و هی اوررایت میشه
کسی میتونه به من کمک کنه ؟

این سرویسیه که صدا میزنم موقع فراخونی از دی بی :


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

این ساختار تمپلیت هست که روی خروجی جیسون میخوام لود کنم


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


این فایل اسکریپت منه :



$(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);


}
});

}







من حتی از stopPropagation هم استفاده کردم ولی این فقط باعث شد که کلیک های بعدی روی ایتم های فرزند بی اثر بشه

sinoser
جمعه 22 شهریور 1392, 22:09 عصر
من ajax رو خوندم ولی چون سمت سرور کار نمی کنم زیاد کار نکردم ولی خب می دونم
توی لود تم فک کنم از اسمارتی استفاده می کنی
ولی تفسیر کدشو نمی دونم و باید بگم وقتی توی فروم jQuery سوال می کنی بهتره توضیحات مربوط به زبان های دیگه رو بدی

جدا از اینا باید سورس متد های processTemplate() و setTemplateURL() رو هم بذاری ببینیم توش چی طور عملایت انجام میشه

sinoser
جمعه 22 شهریور 1392, 22:18 عصر
یه چیزم به نظرم اشتباه میاد
وقتی این سیستم تم هی تکرار بشه خروجیش یه چیز غیر استاندارده
اخه وقتی تگ ol هست باز توش میشه ul با فرزندان li خب وقتی ol هست ul چی می خواد !!!!
حتما کد لود تم رو بذار