PDA

View Full Version : سوال: استفاده از datalist و ajax براي ايجاد آلبوم عكس



peyman13618
پنج شنبه 23 تیر 1390, 09:46 صبح
من يكسري عكس به دو شكل thumbnail و fullsize تو ديتابيس ذخيره كردم.تو datalist زير هر عكس يك دكمه بزرگنمايي قرار دادم تا وقتي روي اون كليك ميشه فول سايز همون عكس تو يه قاب عكس كه تو updatepanel گذاشتم عوض بشه. مشكل اينجاست كه ارتباط عكس انتخاب شده با imageurl تو اون قاب رو نمي تونم ايجاد كنم. يه راهنمايي مي خواستم. كد بايند شدن اون imageurl رو به اون عكس چجوري بايد بنويسم؟

Saman Hashemi
پنج شنبه 23 تیر 1390, 12:37 عصر
فول سايز توي يك فولدر و عكسهاي كوچك توي يه فولدر ديگه با نام يكسان ذخيره كن ودر بانك فقط نام عكس ذخيره كن بعد اينجوري بخون
smallSize==samallsizeFolder/imagename.jpg
FullSize==fullSizeFolder/imagename.jpg
كه اينجوري اسم عكس فقط با آدرس فولدر جمع ميكني و بهشون دسترسي پيدا ميكني

peyman13618
پنج شنبه 23 تیر 1390, 14:26 عصر
مشکل آدرس دهی نیست. نمی دونم تو updatepanel که یک image قراردادم چجوری باید imageurl اش رو با مقداری که تو دیتابیس دارم ارتباط بدم؟ یعنی وقتی روی thumbاول هستم و دکمه مشاهده رو میزنم باید تو قسمتajax مقدار فیلد fullsize رو که تو کانکشن دیتا لیست خونده بیاره برابر مقدار imageurl تو updatepanel قرار بده. از databinder.eval باید استفاده کنم فکر کنم ولی فرمتش رو نمیدونم. مثلا یه hiddenfield بزارم و وقتی کلیک شد دکمه، مقدارش رو با فیلد fullsize پر کنه بعدش اون عکس رو بزرگ تو قسمت آپدیت پنل نمایش بده. کد نویسی این قسمت رو بلد نیستم. شبیه این باید باشه
image1.imageurl= databinder.eval (hiddenfield...

hjran abdpor
پنج شنبه 23 تیر 1390, 15:38 عصر
باید از متد Eval استفاده کنید !!!

hjran abdpor
پنج شنبه 23 تیر 1390, 15:48 عصر
http://forums.asp.net/p/1588037/4016580.aspx

دوست عزیز لینک بلای را نگاه کنید مشکلتون حل میشه.

peyman13618
پنج شنبه 23 تیر 1390, 16:28 عصر
لینک باز نشد خطا داد:
502 - Web server received an invalid response while acting as a gateway or proxy server.
There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.

اگه شما می تونید باز کنید سایتش رو میشه اینجا محتویاتش رو کپی کنید؟

dontspeak
پنج شنبه 23 تیر 1390, 16:36 عصر
سلام
منظور دوستمون یه همچین چیزیه

Text='<%# Eval("ForumName") %>'
البته شما باید به جای text از imageUrl استفاده کنید. و به جای ForumName از اسم ستونی که Url عکستون توشه استفاده کنید مثلا ستون IamgeUrl از جدول عکسها

peyman13618
جمعه 24 تیر 1390, 01:44 صبح
من اون کدی که دارم رو با دیتابیس و فایل ها اینجا قرار می دم. اگه کسی تونست رو همین یه تغییری بده که وقتی روی دگمه ی زیر هر عکس کلیک کنیم تو updatepanel بالا عکس فول سایز رو نمایش بده.

Himalaya
جمعه 24 تیر 1390, 03:42 صبح
سلام
اول اینکه اون Update Panel تو کدای شما هیچ کاربردی نداره. چون دکمه هایی که قراره روشون کلیک بشه بیرون از Update Panel هستن و این باعث Refresh کل صفحه میشن.
دوم اینکه واسه انجام این کار احتیاجی به Update Panel و asp:Image و asp:Button نیست. کنترلهای سمت کلاینت همراه با javascript کافیه
سوم اینکه شما لازم نیست تو db یه ستون واسه thumb و یکی هم واسه full تعریف کنید. و ذخیره تنها اسم عکس کافیه (مسیر لازم نیست، چون مسیر ثابت هستش)
به جای ستونهای thumb و full یه ستون به اسم FileName تعریف کنید و کدای زیر رو تو صفحه قرار بدید


<head runat="server">
<title></title>
<script>
function ShowFullImage(fileName) {
document.getElementById('BigImage').src = '/full/' + fileName;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="width: 600px; background-color: Gray; height: 400px">
<img id="BigImage" Width="100%" Height="100%"/>
</div>
<div>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="3"
Style="text-align: center" CellSpacing="5">
<ItemTemplate>
<br />
<img src='/thumb/<%# Eval("FileName") %>' width="120px" height="90px"/>
<br />
<input type="button" value="Show Full Size" onclick="ShowFullImage('<%# Eval("FileName") %>')" />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [tblPic]"></asp:SqlDataSource>
</div>
</form>
</body>

و آخر اینکه به نظرم اگه به جای درست کردن آلبوم تصاویر توسط DataList و ... از آلبوم های تصاویر Jquery استفاده کنید و اونو داینامیک کنید، آلبومتون ظاهر قشنگتری پیدا میکنه

sg.programmer
جمعه 24 تیر 1390, 09:25 صبح
سلام
اول اینکه اون Update Panel تو کدای شما هیچ کاربردی نداره. چون دکمه هایی که قراره روشون کلیک بشه بیرون از Update Panel هستن و این باعث Refresh کل صفحه میشن.
دوم اینکه واسه انجام این کار احتیاجی به Update Panel و asp:Image و asp:Button نیست. کنترلهای سمت کلاینت همراه با javascript کافیه
سوم اینکه شما لازم نیست تو db یه ستون واسه thumb و یکی هم واسه full تعریف کنید. و ذخیره تنها اسم عکس کافیه (مسیر لازم نیست، چون مسیر ثابت هستش)
به جای ستونهای thumb و full یه ستون به اسم FileName تعریف کنید و کدای زیر رو تو صفحه قرار بدید


<head runat="server">
<title></title>
<script>
function ShowFullImage(fileName) {
document.getElementById('BigImage').src = '/full/' + fileName;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="width: 600px; background-color: Gray; height: 400px">
<img id="BigImage" Width="100%" Height="100%"/>
</div>
<div>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="3"
Style="text-align: center" CellSpacing="5">
<ItemTemplate>
<br />
<img src='/thumb/<%# Eval("FileName") %>' width="120px" height="90px"/>
<br />
<input type="button" value="Show Full Size" onclick="ShowFullImage('<%# Eval("FileName") %>')" />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [tblPic]"></asp:SqlDataSource>
</div>
</form>
</body>

و آخر اینکه به نظرم اگه به جای درست کردن آلبوم تصاویر توسط DataList و ... از آلبوم های تصاویر Jquery استفاده کنید و اونو داینامیک کنید، آلبومتون ظاهر قشنگتری پیدا میکنه

میتونی یک مثال بزنی
********************
آخر اینکه به نظرم اگه به جای درست کردن آلبوم تصاویر توسط DataList و ... از آلبوم های تصاویر Jquery استفاده کنید و اونو داینامیک کنید، آلبومتون ظاهر قشنگتری پیدا میکنه
********************

Himalaya
جمعه 24 تیر 1390, 16:03 عصر
سلام

میتونی یک مثال بزنی
اینجا (http://barnamenevis.org/showthread.php?295775-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%AF%D8%A7%D9%84%D8%B1%DB%8C-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9-%D8%AA%D9%88%D8%B3%D8%B7-Jquery)رو ببینید

Saman Hashemi
دوشنبه 27 تیر 1390, 09:48 صبح
اينارو ببين شايد كمكت كنه...!
لينك1 (http://forum.how2learnasp.net/ShowTopic.aspx?Code=2735)
لينك2 (http://forum.how2learnasp.net/ShowTopic.aspx?Code=1993)