PDA

View Full Version : چگونگي بررسي يك شرط if داخل گريدويو؟؟



AmirGhasemi
پنج شنبه 06 تیر 1392, 12:13 عصر
سلام دوستان
من يك گريد دارم كه اطلاعات را از ديتابيس مي خونم و در ان نمايش مي دم
خب تا اينجا مشكلي نيست
اما مي خوام يك ستون اضافي داشته باشم كه داخل اين ستون بايد يك Imag نمايش بدم به اين صورت كه اگر مقدرا عددي ستون اول گريد از ستون دوم بيشتر بود مقدار ستون Image من برابر فلان عكس بشه و اگر ستون اول از ستون دوم كمتر بشه ستون عكس برابر بسان عكس
حالا موندم چطور مي تونم اين شرط را بررسي كنم؟؟؟؟
دوستان ياري دهيد تا ما عروس داري كنيم

khorsandreza
پنج شنبه 06 تیر 1392, 13:20 عصر
شما می تونین یک روتین بنویسین سپس آن فانکشن را با مقدار خودت فرا خوانی کنی
مثل زیر
public static string ShowMyImage(string pkid)
{
دستورلات شرط
.
.
.
.
.
.
.

return imagurl
}


در محل مورد نظر به شکل زیر فرا بخوانی

<%= ShowMyImage(1)%>>

AmirGhasemi
پنج شنبه 06 تیر 1392, 14:17 عصر
خب دوست عزيز من چطوري مي تونم توي اين متدم به ستون هاي گريد ويو دسترسي داشته باشم! مشكل من اينكه نميشه به ستون هاش دسترسي داشت وگرنه فكركنم توي RowDatabaind بهتر باشه نوشتنش

imohsen
پنج شنبه 06 تیر 1392, 15:58 عصر
سلام
فرض می کنیم دو تا ستون مورد نظر شما دوتا template field هست از نوع label، یکی بنام lbl_1 و دیگری lbl_2
و ستون مورد نظر شما هم یکی دیگه از نوع image هست بنام img_result (باید اینارو بسازی)
یعدش توی ایونت هندلر گرید ویو باید اینو بنویسی:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

foreach (GridViewRow gr in GridView1.Rows)
{
Image img = (Image)gr.FindControl("lmg_result");
Label lbl = (Label)gr.FindControl("lbl_1");
Label lbl2 = (Label)gr.FindControl("lbl_2");
if (Convert.ToInt32(lbl.Text) >= Convert.ToInt32(lbl2.Text))
{
img.ImageUrl = "~/pics/pic1.jpg";
}

else
img.ImageUrl = "~/pics/pic2.jpg";



}
}


انشاالله این جواب میده

khorsandreza
پنج شنبه 06 تیر 1392, 16:05 عصر
فکر کنم اگه در template field یک image قرار داده بشه imageurl ان را دستور بالا قرار بدبم راخت تر است


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%= ShowMyImage(1)%>'
Height="25px" Width="25px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

khorsandreza
پنج شنبه 06 تیر 1392, 16:08 عصر
روش دومی است که اگر تعداد عکس قابل انتخاب محدود است ادرس تصویر را ذخیره و بر اساس کد مقدار ان تصویر بایند بکنیم
در این شیوه اگر شرط دیگری نیاز شود لازم نیست در بخش کد دستکاریکنیم فقط یک سطر به دیتابیس اضافه میکنیم و کد و آدرس تصویر ذخیره میکنیم

اگر نتونستید بفرمائید یک مثال ساد براتون درست بکنم

AmirGhasemi
پنج شنبه 06 تیر 1392, 23:41 عصر
روش دوست عزيزمون محسن به خوبي جواب داد
ممنون