تغییر رنگ پس زمینه سلول (Cell) گریدویو (GridView) در زمان اجرا در Asp.Net
یکشنبه 16 فروردین 1394در این مقاله میخواهیم رنگ پس زمینه سلول (Cell) گریدویو (GridView) در Asp.Net را در زمان اجرا تغییر دهیم
در این مقاله میخواهیم رنگ پس زمینه سلول (Cell) گریدویو (GridView) در Asp.Net را در زمان اجرا تغییر دهیم
ابتدا یک پروژه جدی از نوع وب فرم ایجاد کنید ویک صفحه جدید به پروؤه خود اضفه کنید در این صفحه از جعبه ابزار خود یک گرید ویو اضافه کرده و دو فیلد برای آن در نظر بگیرید:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="OnRowDataBound"> <Columns> <asp:BoundField DataField="Item" HeaderText="آیتم" ItemStyle-Width="100" /> <asp:BoundField DataField="Quantity" HeaderText="تعداد" ItemStyle-Width="100" /> </Columns> </asp:GridView>
در ابتدا به دو فضای نام زیر نیاز داریم:
using System.Data; using System.Drawing;
در رویداد Page_Load صفحه یک شی از DataTable میسازیم و داده های خود را به آن اضافه میکنیم :
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Item"), new DataColumn("Quantity") }); dt.Rows.Add("پیراهن", 145); dt.Rows.Add("شلوار", 0); dt.Rows.Add("گرمکن", 190); dt.Rows.Add("کراوات", 30); dt.Rows.Add("کلاه", 0); dt.Rows.Add("شال", 90); dt.Rows.Add("روسری", 290); dt.Rows.Add("کمربند", 150); GridView1.DataSource = dt; GridView1.DataBind(); } }
در داخل رویدادOnRowDataBound مربوط به کنترل گریدویو مقدار داخل سلول (Cell) با بازه تعرف شده مقایسه میشود و با توجه به آن بازه رنگ پس زمینه مربوطه به آن اختصاص داده می شود:
protected void OnRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { TableCell cell = e.Row.Cells[1]; int quantity = int.Parse(cell.Text); if (quantity == 0) { cell.BackColor = Color.Red; } if (quantity > 0 && quantity <= 50) { cell.BackColor = Color.Yellow; } if (quantity > 50 && quantity <= 100) { cell.BackColor = Color.Orange; } } }
- ASP.net
- 2k بازدید
- 6 تشکر