تغییر رنگ پس زمینه سلول (Cell) گریدویو (GridView) در زمان اجرا در Asp.Net

یکشنبه 16 فروردین 1394

در این مقاله میخواهیم رنگ پس زمینه سلول (Cell) گریدویو (GridView) در Asp.Net را در زمان اجرا تغییر دهیم

تغییر رنگ پس زمینه سلول (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;
        }
    }
}

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید