Можно ли применить операцию к диапазону индексов ячеек в событии RowDataBound GridView? - PullRequest
0 голосов
/ 30 января 2020

Я устанавливаю функции макета GridView в событии RowDataBound на основе содержимого указанных c ячеек

private void OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.Cells[1].Text == " ")
        {
            e.Row.Cells[4].BackColor = System.Drawing.Color.White;
            e.Row.Cells[5].BackColor = System.Drawing.Color.White;
            e.Row.Cells[6].BackColor = System.Drawing.Color.White;

. Есть ли способ указать диапазон (индекс ячеек от 4 до 6), в котором выполняется эта операция? должен применяться к?

Что-то вроде:

private void OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.Cells[1].Text == "&nbsp;" && e.Row.CellIndex >= 4 && e.Row.CellIndex <= 6)
        {
            e.Row.BackColor = System.Drawing.Color.White;

1 Ответ

1 голос
/ 30 января 2020

Это должно быть то, что вам нужно:

private void OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
  for (int i = 4; i <= 6; i++)
       if(e.Row.Cells[1].Text == "&nbsp;")
          e.Row.Cells[i].BackColor = System.Drawing.Color.White;
}

Если вам действительно нужно проверить, является ли оно DataControlRowType.DataRow, вы можете вставить его в if в for для l oop.

...