PDA

View Full Version : تغيير رنگ اطلاعات در ديتا ليست



no0rin_66
چهارشنبه 28 خرداد 1393, 10:41 صبح
من ميخوام يكسري اطلاعات را از ديتابيس بخون اگر status انها فعال بود رنگش سبز و اگر غير فعال بود قرمز شود ليبلي كه در ديتا ليست است .راهنماييم كنيد ممنون

aroshanzamir
چهارشنبه 28 خرداد 1393, 11:32 صبح
مقدار status را از db می خونی هر بار و با این شرط چک می کنی :
من در اینجا پش فرض مقدار را true قرار دادم شما از db می خونی


bool status = true;
lbl.ForeColor = (status) ? System.Drawing.Color.Green : System.Drawing.Color.Red;

no0rin_66
چهارشنبه 28 خرداد 1393, 11:48 صبح
نه اين پاسخش نميشه يكبار امتحان كن متوجه مي شويد ممنون.

aroshanzamir
چهارشنبه 28 خرداد 1393, 12:16 عصر
پسر خوب وقتی پست میزارم اول امتحان می کنم .. بعد میزارم

no0rin_66
چهارشنبه 28 خرداد 1393, 14:53 عصر
مهندس عزيز من خانوم هستم
در ضمن بنده هم اينو امتحان كرده بودم.
چون اصلا نميشه lbl را داخل ديتا ليست اينطوري صدا كرد واسه همين من find ميكنمش بعدش سر اينكه به ازاي هر فعال رنگ را عوض كنه گير ميكنم منطقشو نميتونم پياده كنم
چون وقتي رنگ عوض ميشه همشون عوض ميشن.
باز از راهنماييتون ممنونم
ميشه برام سورستونو بزاريد شايد من دارم اشتباه ميكنم يه جايي

aroshanzamir
چهارشنبه 28 خرداد 1393, 23:14 عصر
سلام دوست من : وقت شما بخیر

راست گفتیا من این کار را با GridView و Repeater , .. انجام داده بودم ولی با DataList نه .. پیش خودم می گفتم شاید مثل اونها باشه ... بیش از یک ساعت گرفتارش بودم .... شما ما وادار کردی تا بشینم و جواب را پیدا کنم
یکی از خوبیت های که GridView داره اینه که یک خصوصیت به نام SelectMethod داره و یکی دیگه به نام ItemType .. همه کارها را راحت می کنه .. پشتیبانی کامل از Strongly Type


بریم سر بحث خودمون :

من کار را با یک کلاس Student شروع می کنم :

.

public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Family { get; set; }
public bool Status { get; set; }
}


این هم کلاس StudentContext جهت گرفتن مقادیر :


public class StudentContext
{
public List<Student> GetAllStudent()
{
return new List<Student>()
{
new Student{ Id=1 , Name="Abolfazl", Family="RoshanZamir", Status=true},
new Student{ Id=2 , Name="Reza" , Family="Mohammadi" , Status=false},
new Student{ Id=3, Name="ANDY" , Family="Madadian", Status=true}
};
}
}



من یک فیلد وضعیت به نام Status دارم می خواهم اگر True بود با سبز نشون بده در غیر این صورت با قرمز ...

css هی مورد نیاز برای زیبایی نمایش :

<style type="text/css" lang="en">
.main {
width: 600px;
height: auto;
background-color: #f8f8f8;
margin: 100px auto;
}


.row {
width: 590px;
height: 35px;
border-bottom: 1px solid #eee;
line-height: 2.5em;
text-align: left;
padding-left: 10px;
}


.field {
width: 145px;
height: 35px;
float: left;
color: black;
}
</style>


و در نهایت خود DataList :::::



<div class="main">
<div class="main">
<asp:DataList ID="dl" runat="server">
<ItemTemplate>
<div class="row">
<div class="field">
<%# DataBinder.Eval(Container.DataItem,"Id") %>
</div>
<div class="field">
<%# DataBinder.Eval(Container.DataItem,"Name") %>
</div>
<div class="field">
<%# DataBinder.Eval(Container.DataItem,"Family") %>
</div>
<div class="field">
<asp:Label ID="lbl" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem,"Status") %>'
ForeColor='<%# ((bool)DataBinder.Eval(Container.DataItem, "Status"))? System.Drawing.Color.Green:System.Drawing.Color.Re d %>'>
</asp:Label>
</div>
</div>
</ItemTemplate>
</asp:DataList>
</div>
</div>



و این هم کد سی شارپ برای پر کردن DataList :






dl.DataSource = new StudentContext().GetAllStudent();
dl.DataBind();



این هم خروجی نهایی :

120308




امیدوارم جواب گرفته باشید ...
پیروز و سربلند باشی

no0rin_66
یک شنبه 01 تیر 1393, 07:59 صبح
ممنون از پاسختون ميشه سورس برام بزاريد ممنون ميشم .عالي بود

hamid_0341
یک شنبه 01 تیر 1393, 09:04 صبح
ممنون از پاسختون ميشه سورس برام بزاريد ممنون ميشم .عالي بود

سورس نمیخواد دیگه با همین رنگی میشه
<asp:Label ID="lbl" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Status") %>'
ForeColor='<%# ((bool)DataBinder.Eval(Container.DataItem, "Status"))? System.Drawing.Color.Green:System.Drawing.Color.Re d %>'>
</asp:Label>

no0rin_66
یک شنبه 01 تیر 1393, 09:40 صبح
اخه واسه من به bool گير ميده ديتا من از جنس bit در ديتابيس
چيكار بايد بكنم هي ارور ميده

no0rin_66
یک شنبه 01 تیر 1393, 10:06 صبح
Convert.ToBoolean(Convert.ToByte با اين درست شد ممنون از همتون

aroshanzamir
یک شنبه 01 تیر 1393, 12:23 عصر
باشه الان میزارمش .....

aroshanzamir
یک شنبه 01 تیر 1393, 12:36 عصر
120400

این هم خود برنامه