PDA

View Full Version : مشکل با استفاده از یک user control در چند جای یک صفحه



maryam_272
سه شنبه 27 دی 1390, 15:28 عصر
سلام
من یک usercontrol ساختم که به کمک ajax jquery میاد و اطلاعات بخش خبر را نمایش می دهد
چون می خواهم از این user control به دفعات در صفحات مختلف استفاده کنم پراپرتی های مختلفی برای آن قرار دادم که مثلا اگر تعیین کردیم عکس را نمایش ندهد و...
حالا من داخل یک صفحه در 2 ستون مختلف می خواهم از این user control استفاده کنم و پراپرتی هایش را هم set کردم ولی چون توی usercontrol از ajax استفاده کردم و یک div با Id مشخص قرار دادم فقط یکی از usercontrol ها را نمایش می دهد
کد صفحه usercontrol به این شکل هست

<script type="text/javascript">
$(document).ready(function () {
$('.ajaxloader').fadeIn();
$("#result").load("../SafahatAjax.ashx", { action: "datalistlatestnews," + $("#<%=ddPaging1.ClientID %>").val() }, function () {
$('.ajaxloader').hide();
});

$("#<%=ddPaging1.ClientID %>").change(function () {
$('.ajaxloader').fadeIn();
$("#result").load("../SafahatAjax.ashx", { action: "datalistlatestnews," + $("#<%=ddPaging1.ClientID %>").val() }, function () {
$('.ajaxloader').hide();
});
});
});
</script>

<style type="text/css">
.ajaxloader
{
position: absolute;
text-align: center;
top: 0px;
width: 100%;
margin: auto auto;
}
.ajaxloaderInnerDiv
{
-moz-box-shadow: 5px 5px 5px rgba(68,68,68,0.6);
-webkit-box-shadow: 5px 5px 5px rgba(68,68,68,0.6);
box-shadow: 5px 5px 5px rgba(68,68,68,0.6);
filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius =3,MakeShadow=true,ShadowOpacity=0.30);
-ms-filter: "progid:DXImageTransform.Microsoft.Blur(PixelRadius =3,MakeShadow=true,ShadowOpacity=0.30)";
zoom: 1;

width: 104px;
height: 34px;
background-color: #d0d0d0;
margin: auto auto;
}
.ajaxloaderIMG
{
position: relative;
top: 6px;
font-family: Tahoma;
font-size: 8pt;
line-height: 210%;
}
</style>
<div class="ajaxloader">
<div class="ajaxloaderInnerDiv">
<img alt="در حال بار گذاری..." class="ajaxloaderIMG" src="../Images/loadinfo6.net.gif" /></div>
</div>

<asp:DropDownList ID="ddPaging1" runat="server" >
</asp:DropDownList>
<br />
<br />
<div id="result">
</div>
<asp:SqlDataSource ID="SqlDataSourceCountNews" runat="server" ConnectionString="<%$ ConnectionStrings:VWO_UserControlTestConnectionStr ing %>"
SelectCommand="SELECT COUNT(Id) AS CountNews FROM News"></asp:SqlDataSource>

اگه به کدها دقت کنید می بینید که من برای div با id="result" کدی نوشتم که در واقع یک usercontrol دیگر را توسط ajax لود می کنه
مشکلم دقیقا با div با id="result" می باشد
میشه راهنماییم کنید

mahmood_4246
سه شنبه 27 دی 1390, 18:24 عصر
فکر نمیکنم جی کوئری بتونه فایل asax رو لود کنه

Saman Hashemi
چهارشنبه 28 دی 1390, 08:00 صبح
فکر نمیکنم جی کوئری بتونه فایل asax رو لود کنه
در مورد چیزی که مطمئن نیستید نظر ندید اینکار باعث میشه خیلیها به اشتباه بیوفته که اینکار شدی نیست...!
به این (http://www.dotnettips.info/2009/07/blog-post_06.html)سایت مراجعه کنید آقای نصیری کامل توضیح دادند...!

Saman Hashemi
چهارشنبه 28 دی 1390, 08:02 صبح
فکر نمیکنم جی کوئری بتونه فایل asax رو لود کنه
در مورد چیزی که مطمئن نیستید نظر ندید اینکار باعث میشه خیلیها به اشتباه بیوفته که اینکار شدی نیست...!
به این (http://www.dotnettips.info/2009/07/blog-post_06.html)سایت مراجعه کنید آقای نصیری کامل توضیح دادند...!

maryam_272
چهارشنبه 28 دی 1390, 12:09 عصر
همونطور که اقای Saman Hashemi فرمودن از مقاله آقای نصیری می تونید به راحتی یک usercontrol را با ajax jquery لود کنید
حالا کسی می دونه من چطوری این مشکل را باید بر طرف کنم؟

VMTCO.IR
چهارشنبه 28 دی 1390, 22:49 عصر
سلام
از کدتون مشخصه که کنترل اول لود می شه، دومی لود نمی شه، چون نوشتید $("#<%=ddPaging1.ClientID %>") ، اگه اجرا کنید سایتو، برید سورس کد صفحه رو ببینید، ClientID خودش نوشته شده به جای این که مقدارش نوشته بشه، برای حل کردن این مشکل از کلاس استفاده کنید، مثلا $(".ddPaging") و اضافه کردن کلاس ddPaging به dropdown ddPaging1 .
این کارو بکنید درست می شه

maryam_272
شنبه 01 بهمن 1390, 11:40 صبح
میشه بیشتر توضیح بدید من خیلی متوجه نشدم

maryam_272
یک شنبه 09 بهمن 1390, 10:14 صبح
سلام
جناب VMTCO.IR من روز اول متوجه منظور شما نشدم
اما مشکل من اینی که شما می فرمایید نیست چون وقتی یک usercontrol میزارم کاملا درست جواب میده واگه اونجوری که شما میگید با کلاس کار کنم به مشکل باید بربخوره چون در واقع دو تا dropdownlist با کلاس های یکسان دارم و برنامه از کجا می دونه روی کدوم باید کاری رو انجام بده در حالیکه وقتی از کلاینت id استفاده می کنم این مشکل را نداره

VMTCO.IR
جمعه 17 آذر 1391, 12:48 عصر
سلام
با استفاده از $(this) می تونید بفهمید که کدوم یکی از dropdown ها کلیک کردید.