PDA

View Full Version : حرفه ای: true کردن visible=false تگ div با جاوا اسکریپت یا جی‌کوئری یا آجاکس



nimadows
شنبه 15 تیر 1392, 11:18 صبح
دوستان یه مشکلی دارم چندین بار تاپیک قرار دادم کلی سرچ کردم اما هیچ جوابی نگرفتم
من یه div دارم که ویزیبلش رو فالس کردم (visible=false)
<div id="div1" runat="server" visible="false"></div>
که داخل این div کلی عکس های سنگین دارم برای همین اونو false کردم تا همراه با لود شدن سایت این div لود نشه که سایت رو سنگین نکنه
حالا میخوام با کلیک بر روی یه عکس اونو true کنم
از این کدها هم نمیخوام استفاده کنم





$("#div1").show();


$("#div1").hide();




$("#div1").slideDown();



$("#div1").slideUp();



$("#div1").fadeIn();



$("#div1").fadeOut();


چون فقط دیو رو پنهان میکنه ولی محتویات داخل لود میشه
در ضمن از جاوا اسکریپت یا جی‌کوئری یا آجاکس میخوام استفاده کنم تا صفحه رفرش نشه دوستان نظرتون یا پیشنهادتون چیه ؟

mehdi.mousavi
شنبه 15 تیر 1392, 11:51 صبح
سلام.
وقتی در ASP.NET، خصیصه Visible یک Control رو False می کنید، در حقیقت دارید به ASP.NET میگید که اون Control رو Render نکنه. در نتیجه،
اثری از اون Control در HTML تولید شده نخواهد بود. حالا اینجا سوالی که مطرحه اینه که "پس اصلا چرا کنترل رو تعریف می کنید که حالا بخواهید
Visible بودنش رو False کنید؟"

روش صحیح، این هستش که شما سمت Client، درخواستی مبنی بر گرفتن اطلاعاتی که مایلید اونها رو بصورت Ajax لود کرده و نمایش بدید، به سرور
ارسال کنید. این کار در jQuery به اشکال مختلف و متفاوت می تونید صورت بگیره. حتی میتونید از Framework هایی که به شما کمک می کنن تا
Template مورد نظر رو در حافظه بسازید و اونو به DOM Document اضافه کنید و ... نیز استفاده کنید. (مثل Handlebars (http://handlebarsjs.com/) و دو جین پروژه دیگه).

اما شما می تونید اینو سمت سرور و با امکانات ASP.NET نیز مدیریت کنید. فرضا می تونید از ASP.NET Client Callback، Update Panel و ... استفاده
کنید. بدین ترتیب که div مورد نظر رو در UpdatePanel قرار بدید، سپس در Partial Postback، از سرور بخواهید که یک Update Panel خاص رو براتون
Load کنه و ...

حتی روش های دیگه ای هم نیز وجود داره. فرضا میشه از Lazy Load Plugin (http://www.appelsiini.net/projects/lazyload) استفاده کرد...

لطفا قدری در مورد روش هایی که نام بردم تحقیق کنید، اگر بازهم سوالی بود در همین تاپیک مطرح کنید تا راهنمایی کنم.

موفق باشید.

nimadows
شنبه 15 تیر 1392, 16:29 عصر
ممنون از توجهتون
من این چند راهنمایی که فرمودین رو انجام دادم اما کمی گیج شدم
لطف میکنید در رابطه با
((اما شما می تونید اینو سمت سرور و با امکانات ASP.NET نیز مدیریت کنید. فرضا می تونید از ASP.NET Client Callback، Update Panel و ... استفاده
کنید. بدین ترتیب که div مورد نظر رو در UpdatePanel قرار بدید، سپس در Partial Postback، از سرور بخواهید که یک Update Panel خاص رو براتون
Load کنه و ...))
بیشتر توضیح بدید

nimadows
شنبه 29 تیر 1392, 12:05 عصر
من تو یه div از data list استفاده کردم اون دیو رو display=noneکردم و با jquery اونو block میکنم تا دیده بشه
اما محتویات div یا همون data list صفحه رو سنگین کرده
برای همین میخوام لود نشه
میخواستم از visible=false استفاده کنم که فرمودین نمیشه
میخواستم با jquery کل data list رو بسازم اما کدهای asp.net که تو cs نوشتم باعث میشه ارور بده
این مشکل با روشهای که فرمودین حل نمیشه
راهنمایی بفرمایید چکار باید کرد