Как изменить цвет строки в сетке Dev Express после загрузки данных из базы данных в C # winforms - PullRequest
0 голосов
/ 30 ноября 2018

Я новичок в Dev Express.

Я хочу изменить цвет фона строки в сетке dev express после загрузки данных в C # winforms.

Я заполняю сетку данных из приведенного ниже кода

    string sReportSql = "SELECT * FROM Employee";
    private void Form_Load(object sender, EventArgs e)
    {

        dataGridView.DataSource = GeDataFromDb();


    }

    private DataTable GeDataFromDb()
    {

        DataTable dtGenericReport = new DataTable();
        using (SqlConnection con = new SqlConnection(connString))
        {
            if (sReportSql != null)
            {
                using (SqlCommand cmd = new SqlCommand(sReportSql, con))
                {
                    con.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    dtGenericReport.Load(reader);
                }
            }

        }
        return dtGenericReport;
    }

Я пытался использовать событие Row Style, но, похоже, оно не работает

    private void gridview1_RowStyle(object sender, RowStyleEventArgs e)
    {
        GridView View = sender as GridView;
        if (e.RowHandle >= 0) {
            string status = View.GetRowCellDisplayText(e.RowHandle, View.Columns["status"]);
            if (status == "Completed") {
                e.Appearance.BackColor = Color.IndianRed;   
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Мне кажется, что в вашем коде нет проблем

Я думаю, что название события gridview1_RowStyle должно быть gridview_RowStyle

, возможно, вы допустили ошибку, выбрав другоеgridview

вы можете проверить это в Run designer

enter image description here

0 голосов
/ 30 ноября 2018

Лучший способ, который я знаю, - использовать событие CustomDrawCell.Что-то вроде следующего кода.

private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
    GridView View = sender as GridView;
    if (e.RowHandle >= 0) {
        string status = View.GetRowCellDisplayText(e.RowHandle, View.Columns["status"]);
        if (status == "Completed") {
            e.Appearance.BackColor = Color.IndianRed;   
        }
    }
}
...