PDA

View Full Version : نمایش عکس در GridView



nasr
سه شنبه 13 مرداد 1388, 09:34 صبح
سلام
من یه دیتابیس دارم که شامل لینک یک تصویر مثل

http://www.barnamenevis.org/forum/images/smilies/yahoo/116.gif
و یک فیلد شامل لینک اون عکس پس از کلیک است مثل

http://barnamenevis.org/forum/newthread.php?do=newthread&f=25

حالا یک گریدویو دارم که می خوام این تصاویر در اون نشون داده بشه و با کلیک بر روی عکس به آدرس مربوطه بره

ممنون

mehdima
سه شنبه 13 مرداد 1388, 11:44 صبح
با سلام

شما با استفاده از یک Template می توانید اینکار رو انجام بدید.به عنوان مثال به اینصورت:


<asp:TemplateField>
<ItemTemplate>
<a href='<%# Eval("imglink") %>'>
<asp:Image Width="100" Height="100" runat="server" ID="img1" ImageUrl='<%# Eval("imgpath") %>' />
</a>
</ItemTemplate>
</asp:TemplateField>
نمونه مثال رو هم ببینید:

nasr
سه شنبه 13 مرداد 1388, 13:50 عصر
سلام
آقا مشکلم حل شد فقط میشه بگید چطور وقتی روی هر فیلد کلیک شد ID اون رکورد را برگردونه

یعنی چطور OnClick برای رکوردها تعریف کنم؟

ممنون

mehdima
سه شنبه 13 مرداد 1388, 18:08 عصر
با سلام دوست عزیز
من فکر می کنم برای اینکه بهترین جواب رو در رابطه با سوالتون دریافت کنید باید صورت مسله رو کاملا توضیح بدید.منظورم اینکه بفرمایید دقیقا چه کاری می خوایند انجام بدید.چون کار کردن با GridView بسیار متنوع هست.

به عنوان مثال اگر شما قراره با کلیک بر روی عکس متدی رو اجرا کنید باید بجای استفاده از Image از ImageButton استفاده کنید.حتی باید هم نه بلکه یک راه اینست.
روش دیگر استفاده از Select مر بوط به هر رکورد هست و چندین سناریوی دیگر.

در هر صورت بنده در خدمت شما هستم.

nasr
چهارشنبه 14 مرداد 1388, 08:09 صبح
سلام

ببینید من یه دیتاگرید دارم که با همون روش شما عکس داخلش نشون داده میشه. حالا می خوام وقتی فرد با یوزر خودش وارد سایت میشه و روی این دیتاگرید کلیک می کنه در جدول دیگری ID یوزر و ID اون رکورد داخلش ثبت بشه

البته برای ID یوزر مشکلی ندارم فقط مونده ID او رکورد یا حتی اون Hyperlinke اون رکورد را هم برگردونه مشکلم حله.(یعنی آدرس لینکی که با کلیک روی رکورد به اونجا میره)

ممنون

جواب پیام خصوصی را هم دادم

farnooshhp
چهارشنبه 14 مرداد 1388, 08:28 صبح
پیشنهاد من اینه که برای برگرداندن ID هر رکورد
1) در قسمت edit column یک ستون commandfield به نام Select ایجاد کنید
2) در رویداد SelectedIndexChanged گرید دستور زیر را بنویسید


int id = (int)(GridView1.SelectedValue);

با این کار در زمان اجرا هروقت روی دکمه select کلیک شد آیدی اون رکورد در متغیر id قرار می گیره
امیدوارم سوالتون رو درست متوجه شده باشم

mehdima
پنج شنبه 15 مرداد 1388, 10:10 صبح
با سلام
روش Select که دوستمون farnooshhp گفتند می تونه یک راه حل باشه ولی چون آقای nasr احتمالا تاکید بر کلیک کردن روی تصویر مورد نظر دارند یک روش میتونه به اینصورت باشه که از یک ImageButton استفاده کنید و سپس مقادیری که مورد نیازتون هست رو به عنوان آرگومانهای اون در نظر بگیرید و داخل برنامه ازشون استفاده کنید.
در کد زیر همانطور که می بینید مقادیر به عنوان آرگومانهای ImageButton در نظر گرفته شده اند.(مقادیر id,username,imglink,imgpath فیلدهای جدول مورد نظر در پایگاه داده هستند.)


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" Width="61px">
<Columns>
<asp:TemplateField HeaderText="picture">
<ItemTemplate>
<asp:ImageButton Width="100" Height="100" runat="server" ID="img1" ImageUrl='<%# Eval("imgpath") %>'
CommandName="Select" CommandArgument='<%# Eval("id") +"|"+ Eval("username")+"|"+Eval("imglink") %>' OnClick="img1_Click1" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="username" HeaderText="username" SortExpression="username" />
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
</Columns>
</asp:GridView>
سپس در متد کلیک ImageButton مقادیر به صورت زیر بازیابی و تفکیک شده و میتونید مورد استفاده قرار بدید.


protected void img1_Click1(object sender, ImageClickEventArgs e)
{
string args = ((ImageButton)sender).CommandArgument;
string id = args.Split('|')[0];
string username = args.Split('|')[1];
string link = args.Split('|')[2];
}
موفق باشید.

nasr
یک شنبه 18 مرداد 1388, 15:54 عصر
سلام

ضمن تشکر

همه مشکل من حل شد فقط مونده اینکه می خوام لینک مورد نظر توی یک صفحه جدید باز بشه

چطور اینکار را بکنم؟

ممنون

nasr
سه شنبه 20 مرداد 1388, 16:27 عصر
سلام

آیا راهی وجود نداره که این لینک توی یک صفحه جدید باز بشه؟

ممنون

nasr
چهارشنبه 21 مرداد 1388, 15:27 عصر
خوب با توجه به اینکه راهی وجود نداره که با کلیک بر روی عکس صفحه جدیدی باز بشه من این کار را کردم
یک فیلد دیگه گذاشتم کنار عکس که کاربر به جای کلیک روی عکس روی این لینک کلیک کنه. از نوع hyperLink هم گذاشتم


<DataItemTemplate>
<asp:HyperLink ID="hyper1" runat="server"
CommandArgument='<%# Eval("id") +"|"+ Eval("Target")+"|"+Eval("ImageUrl") %>'
CommandName="Select" Height="50"
NavigateUrl='<%# Eval("Target") %>' Target="_blank">کلیک</asp:HyperLink>
</DataItemTemplate>حالا وقتی روی لینک کلیک میکنه لینک در صفحه جدید باز میشه ولی من می خوام غیر از اینکه این کار انجام میشه یک سری کار هم در دیتابیس انجام بشه

وقتی

OnClick="img1_Click1" را اضافه می کنم کاری انجام نمیده

ممنون میشم راهنمایی کنید