2015-12-15 2 views
0

У меня есть gridview, который отображает некоторую информацию о рабочих местах для компаний. В столбцах в конце отображаются разные типы штук, поэтому это число столбцов может измениться, если куски будут удалены или добавлены. Поскольку я не знаю, сколько столбцов может быть там, я не могу использовать row.Cells[8].Visible = false;, потому что я не знаю числа. Пользователь может решить, хотят ли они видеть эти фрагменты в отчете. Поэтому, если нажата кнопка радио, мне нужно, чтобы все столбцы после одиннадцатого столбца (здесь начинались частичные столбцы) были скрыты.Как скрыть все столбцы после одиннадцатой колонки

protected void gvResults_RowCreated(object sender, GridViewRowEventArgs e) 
    { 
     foreach (TableRow row in gvResults.Controls[0].Controls) 
     { 
      if (rbDailyReport.Checked) 
      { 
       row.Cells[0].Visible = true; 
       row.Cells[8].Visible = false; 
      } 

     } 

    } 

Если код работает, если я знаю номер спрятанного столбца. Поэтому мне нужно проверить, больше ли строка больше 11, а затем скрыть все строки.

+0

Используя цикл, начиная с индекса 10 будет моя первая мысль – joko

+0

@joko могли бы вы показать код? – user123456789

ответ

2

Как насчет этого?

protected void gvResults_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    for (int i = 8; i < e.Row.Cells.Count; i++) 
    { 
     e.Row.Cells[i].Visible = false; 
    } 
} 

Start из индекса 8 и скрыть все столбцы, индекс больше 8.

+0

Это работает для скрытия всех строк, но заголовки столбцов все еще отображаются. Как скрыть их? – user123456789

+0

@ user123456789 - Нет, он также должен скрывать столбец. Вы делаете это внутри события 'gvResults_RowCreated' только правильно? У вас есть _autogenerate_ columns ** true ** или ** false **? –

Смежные вопросы