PDA

View Full Version : مشکل با دیتاگرید و تصویر



ghabr
پنج شنبه 25 فروردین 1384, 01:24 صبح
من تو بانک اطلاعاتیم یک فیلد آدرس دارم که مربوط میشه به یک سری عکس.میخوام تو دیتا گرید یک ستون عکس ایجاد کنم و برای هر تصویر از فیلد آدرس استفاده کنم .
برای اینکه URl تصویر رو برابر یک فیلد قرار بدم باید چه کار کنم؟
ممنون :)

Farhad.B.S
پنج شنبه 25 فروردین 1384, 03:00 صبح
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Image id="img" runat="Server" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"ImageUrl") %>'></asp:Image>
</ItemTemplate>
/asp:TemplateColumn>
</Columns>

ghabr
جمعه 26 فروردین 1384, 01:33 صبح
ممنون فرهاد عزیزاین مشکل حل شد به کلی :) :flower:
حالا اگر بخوام یک Event Click برای این تصویر داشته باشم چه جوری باید کار کنم؟
باز هم ممنون :flower:

Farhad.B.S
جمعه 26 فروردین 1384, 02:32 صبح
EventHandler مناسب برای رویداد مورد نظر رو به صورت پابلیک در کد بیهایند تعریف میکنید :

public void MyEventHandler(object sender,ImageClickEventArgs e)
{
...
...
}سپس در صفحه aspx ، نام هندلر تعریف شده رو به رویداد مورد نظر ست میکنید :

<asp:ImageButton ID="img" Runat="server" OnClick="MyEventHandler" ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Image") %>'></asp:ImageButton>

ghabr
جمعه 26 فروردین 1384, 02:38 صبح
باز هم ممنون :flower: :flower: :flower:

ealireza
جمعه 26 فروردین 1384, 08:43 صبح
خوب اینجا میشه ID هم در نظر گرفت :گیج:

مثلا یک فرم باشه برای ارسال کارت پستال

چطوری میشه مثلا یک Button یا Link Button گذاشت که به محض کلیک یک Sub رو اجرا کنه که ID هم در اون در نظر گرفته بشه :گیج:

میشه راهنمایی کنید :mrgreen:

ghabr
شنبه 27 فروردین 1384, 01:18 صبح
من خودم این کار رو با ارسال یک CommandArgument خاص که همون ID هست انجام دادم
البته اگر چند تا دگمه داشته باشی باید واسه هر کدوم تو قسمت HTML یک CommandName بدی که در زمان وقوع رویداد ItemCommand با دگمه های دیگه قاطی نشه.
این توضیح آماتوریش بود . :mrgreen:

ealireza
شنبه 27 فروردین 1384, 22:46 عصر
من خودم این کار رو با ارسال یک CommandArgument خاص که همون ID هست انجام دادم
البته اگر چند تا دگمه داشته باشی باید واسه هر کدوم تو قسمت HTML یک CommandName بدی که در زمان وقوع رویداد ItemCommand با دگمه های دیگه قاطی نشه.
این توضیح آماتوریش بود . :mrgreen:مرسی :موفق:

ghabr
یک شنبه 28 فروردین 1384, 03:11 صبح
کد رو ببین شاید متوجه بشی :wink:
در قسمت HTML و برای Button یک نام خاص در نظر میگیری در قسمت CommandName


<asp:ImageButton id=Button1 runat="server"
ImageUrl='<%# DataBinder.Eval(Container, "DataItem.tmbAddressimg") %>' CommandName="imgid">
</asp:ImageButton>
من اینجا از نام imgid استفاده کردم
حالا در قسمت کد


private void DataGrid1_ItemCommand(object source, DataGridCommandEventArgs e)
{


if(e.CommandName.Equals("imgid")){
Image2.ImageUrl=e.Item.Cells[1].Text;
}
}
اینجا برای دگمه هایی که تعریف میکنی یک نام خاص در نظر بگیری و در رویداد DataGrid1_ItemCommand اون نام رو چک میکنی
در ضمن e.Item.Cells[1].Text نشون دهنده یک مقدار از یک فیلد دیتا گرید است که روی دگمه ی جلوی اون ردیف کلیک کردی.
مثلا اگر در ستون اول دیتا گریدت ID باشه میتونی اونو از طریق e.Item.Cells[0].Text به دست بیاری.
البته این یکی از راه ها است.