PDA

View Full Version : شرط هنگام پر کردن GridView



مهدی رحیم زاده
یک شنبه 09 آبان 1389, 08:23 صبح
سلام
من یک GridView دارم. یک فیلد دارم که با مقدار یک یا دو پر میشه . میخوام اگر مقدارش یک بود توی اون رکورد image1 نمایش داده بشه و اگر هم دو بود image2 نمایش داده بشه . و برای تمامی رکورده ها به همین شکل ، چکار کنم؟
با تشکر

maxpayn2
یک شنبه 09 آبان 1389, 09:03 صبح
میتونی از این ایده بگیری :




<%@ Page Language="C#" AutoEventWireup="true" Inherits="IncrementalDownloadGrid"
CodeBehind="IncrementalDownloadGrid.aspx.cs" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>

<script type="text/javascript">
function GetBookImage(img, url)
{
// Detach the event handler (we'll make just one attempt).
img.onload = null;
// Try to get the picture.
img.src = 'GetBookImage.aspx?isbn='+url;
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="False" BorderColor="#CC9966"
BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" Font-Names="Verdana"
Width="100%" Font-Size="X-Small">
<SelectedRowStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedRowStyle>
<RowStyle ForeColor="#330099" BackColor="White"></RowStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
<Columns>
<asp:BoundField DataField="Title" HeaderText="Title"></asp:BoundField>
<asp:BoundField DataField="isbn" HeaderText="ISBN"></asp:BoundField>
<asp:BoundField DataField="Publisher" HeaderText="Publisher"></asp:BoundField>
<asp:TemplateField>
<HeaderTemplate>
Book Cover
</HeaderTemplate>
<ItemTemplate>
<img src="UnknownBook.gif" alt="Book" onerror="this.src='Unknownbook.gif';" onload="GetBookImage(this, '<%# Eval("isbn") %>');">
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
</asp:GridView>
</div>
</form>
</body>
</html>

Ali_M.Eghbaldar
یک شنبه 09 آبان 1389, 10:17 صبح
سلام دوست من :لبخندساده:
مدی که می خوای دقیقا کد زیره :

<asp:Image ID="Image1" runat="server"
ImageUrl='<%# IIF(Eval("flag")=0,"~/Presentation/images_Items/NoShow.gif","~/Presentation/images_Items/YesShow.gif") %>' />

leila_mahyanet
یک شنبه 09 آبان 1389, 10:34 صبح
<asp:Image ID="Image1" runat="server"
ImageUrl='<%# IIF(Eval("flag")=0,"~/Presentation/images_Items/NoShow.gif","~/Presentation/images_Items/YesShow.gif") %>' />


من هم همیشه با گذاشتن if تو کنترل هایی مثل گرید مشکل داشتم . و شرط رو در bound گرید میزارم. کد شما رو اولین باره که دیدم و خیلی جالب بود . ولی تست کردم اجرا نمیشه :(

مهدی رحیم زاده
یک شنبه 09 آبان 1389, 10:35 صبح
سلام دوست من
مدی که می خوای دقیقا کد زیره :
کد:

<asp:Image ID="Image1" runat="server"
ImageUrl='<%# IIF(Eval("flag")=0,"~/Presentation/images_Items/NoShow.gif","~/Presentation/images_Items/YesShow.gif") %>' />

__________________
موفق باشید
میشه یک مثال کوچیک برام بزارید؟

Ali_M.Eghbaldar
یک شنبه 09 آبان 1389, 11:14 صبح
دوست من کد درسته مثال زیرو همین الان درست کردم !!
بفرمایید !!

leila_mahyanet
یک شنبه 09 آبان 1389, 11:56 صبح
مشکلمو فهمیدم. کد شما vb بود و IIF رو در C#‎ نمیشناخت . مشابه C#‎ کدتون میشه :

<asp:ImageID="Image1"runat="server"ImageUrl='<%#(Eval("flag")=0):"~/1.gif"?"~/3.GIF" %>'/>


در ضمن بازم ممنون . عالی بود.

مهدی رحیم زاده
یک شنبه 09 آبان 1389, 12:39 عصر
مشکلمو فهمیدم. کد شما vb بود و IIF رو در C#‎‎‎‎‎ نمیشناخت . مشابه C#‎‎‎‎‎ کدتون میشه :

<asp:ImageID="Image1"runat="server"ImageUrl='<%#(Eval("flag")=0):"~/1.gif"?"~/3.GIF" %>'/>


در ضمن بازم ممنون . عالی بود.
من هم از سی شارپ استفاده می کنم . اما کد شما هم به پرانتز هاش گیر میده!
این کد منه کجاش مشکل داره:

<asp:ImageButton ID="UserImageButton" runat="server"
ImageUrl='<%# Eval("UserTyp")=2:"~/Managment/ManagPic/users.gif"?"~/Managment/ManagPic/user.gif" %>'/>
اینم اشکالی که می گیره:

) expected
با تشکر

leila_mahyanet
یک شنبه 09 آبان 1389, 12:57 عصر
معذرت میخوام جای ؟ و : رو اشتباه گذاشته بودم . من به صورت زیر نوشتم و جواب گرفتم :



<asp:ImageButtonID="UserImageButton"runat="server"
ImageUrl='<%#(Convert.ToInt32(Eval("UserTyp"))==2)?"~/Managment/ManagPic/users.gif":"~/Managment/ManagPic/user.gif" %>'/>


عبارت آبی باید یک مقدار بولین true یا false بازگرداند. که در صورت true بودن عبارت بعد از ؟ اجرا می شود و در غیر آنصورت عبارت بعد از : اجرا می شود.

mohsen_f_b
دوشنبه 10 آبان 1389, 00:02 صبح
سلام


<asp:TemplateField HeaderText="لغو">
<ItemTemplate>
<asp:LinkButton ID="btnLaghv" runat="server" CommandArgument='<%#Eval("ID") %>'
CommandName="LaghvPress" CssClass="griddeletebuttons" Height="20px"
style="margin-top:4px;" Width="60px">لغو</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

دوستان من توی GridView یدونه TemplateField گذاشتم و توش یدونه LinkButton گذاشتم حالا می خوام یک شرط بنویسم که اگر فیلد RIN برابر 1 بود این LinkButton رو نشون بده و اگه به غیر از 1 بود نشون نده.

این شرط رو چطوری باید بنویسم؟
بعد وقتی روی این LinkButton که کلیک کرد قرار که ID رو بگیره و یکسری کار رو انجام بده.توجه داشته باشید RIN رو نگیره.

باتشکر