تغییر رنگ پس زمینه سطرهای کنترل GridView با استفاده از رویداد RowDataBuond در Asp.Net و VB.NET

در این مقاله نحوه تغییر رنگ پس زمینه سطرهای کنترل GridView به صورت خودکار با استفاده از رویداد RowDataBind در Asp.Net و VB.Net را شرح خواهیم داد

تغییر رنگ پس زمینه سطرهای کنترل GridView با استفاده از رویداد RowDataBuond در Asp.Net و VB.NET

آکادمی برنامه نویسان ، برگزار کننده دوره های آموزش برنامه نویسی با استفاده از اساتید مجرب و حرفه ای در سراسر ایران .

[ جهت مشاهده دوره های درحال ثبت نام کلیک کنید ]

ارائه مدارک معتبر آموزشی و ورود به بازار کار .

برای تغییر رنگ پس زمینه مراحل زیر را انجام می دهیم :

ابتدا کنترل GridView را به صفحه اضافه می کنیم


<asp:GridView ID="GridView1" CssClass = "Grid" runat="server" AutoGenerateColumns="false" OnRowDataBound = "OnRowDataBound">
    <Columns>
        <asp:BoundField DataField="Item" HeaderText="Item"/>
        <asp:BoundField DataField="Quantity" HeaderText="Quantity"/>
    </Columns>
</asp:GridView>

سپس فضای نامهای ذکر شده در ادامه را در پروژه قرار میدهیم :

کد #C :


using System.Data;
using System.Drawing;

کد VB.NET :


Imports System.Data
Imports System.Drawing

سپس می توانیم یک DataTable ایجاد کرده و کنترل GridView را به آن متصل کنیم :

#C :


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("Shirt", 145);
        dt.Rows.Add("Jeans", 0);
        dt.Rows.Add("Trousers", 190);
        dt.Rows.Add("Tie", 30);
        dt.Rows.Add("Cap", 0);
        dt.Rows.Add("Hat", 90);
        dt.Rows.Add("Scarf", 290);
        dt.Rows.Add("Belt", 150);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}

VB.NET :


Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(1) {New DataColumn("Item"), New DataColumn("Quantity")})
        dt.Rows.Add("Shirt", 145)
        dt.Rows.Add("Jeans", 0)
        dt.Rows.Add("Trousers", 190)
        dt.Rows.Add("Tie", 30)
        dt.Rows.Add("Cap", 0)
        dt.Rows.Add("Hat", 90)
        dt.Rows.Add("Scarf", 290)
        dt.Rows.Add("Belt", 150)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End If
End Sub

در این مثال ما با استفاده از رویداد OnRowDataBound چک میکنیم و برای هر شرط یک رنگ متفاوت در نظر گرفته ایم , به طور مثال اگر مقدار 0 باشد رنگ قرمز , مقدار بین 1 تا 50 باشد رنگ زرد و اگر مقدار 51 تا 100 باشد رنگ نارنجی برای پس زمینه سطر مربوطه در نظر می گیرد .

#C :


protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int quantity = int.Parse(e.Row.Cells[1].Text);
 
        foreach (TableCell cell in e.Row.Cells)
        {
            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;
            }
        }
    }
}
 
VB.NET :

Protected Sub OnRowDataBound(sender As Object, e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim quantity As Integer = Integer.Parse(e.Row.Cells(1).Text)
 
        For Each cell As TableCell In e.Row.Cells
            If quantity = 0 Then
                cell.BackColor = Color.Red
            End If
            If quantity > 0 AndAlso quantity <= 50 Then
                cell.BackColor = Color.Yellow
            End If
            If quantity > 50 AndAlso quantity <= 100 Then
                cell.BackColor = Color.Orange
            End If
        Next
    End If
End Sub
 
فایل های ضمیمه