Как настроить видимость столбцов GridView в ASP.NET?

2

Ну, у меня есть список объектов List<UserDC>, теперь я бы хотел отобразить это в какой-то сетке, поэтому я попробовал GridView

GridView1.DataSource = list
GridView1.DataBind()

Ну, это сработало, но теперь я хочу скрыть некоторые столбцы, но это не так просто:

GridView1.Columns(0).Visible = False
GridView1.Columns(1).Visible = False
GridView1.Columns(2).Visible = False

это просто дает мне исключение ArgumentOutOfRangeException, как заставить его генерировать столбцы до того, как он отобразит список, чтобы я мог отфильтровывать те, которые мне не нужны?

Теги:

3 ответа

3
Лучший ответ

Чтобы скрыть столбцы GridView, вы можете использовать GridView_RowDataBoundEvent и скрыть нежелательные столбцы.

Вы можете скрыть заголовок столбца, строки данных OR BOTH, установив свойство RowType в этом случае.

  • 0
    Использовать GridView_RowDataBoundEvent - это перебор. Не уверен, что вы действительно можете это сделать. Использование свойства Visible намного лучше.
1

Работает нормально для меня. Вот вам предложение проверить. Поскольку это код VB.NET, я предполагаю, что у вас есть VS 2005 или 2008. Установите точку останова в GridView1.Columns(0).Visible = False

Используя окно просмотра, создайте часы для GridView1.Columns. Развернуть "base", что такое значение "Count"? Вероятно, это ZERO, значит, у вас нет столбцов. Возможно, причина в том, что у вас есть "ArgumentOutOfRangeException".

Работает ли привязка данных к "списку"?

-1

Вы можете установить видимые столбцы как:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
   <asp:BoundField HeaderText="Property 2" DataField="Property1" />
   <asp:BoundField HeaderText="Property 2" DataField="Property2" />
</Columns>
</asp:GridView>

AutoGenerateColumns = "false" отключает отображение всех свойств/столбцов источника данных. И BoundFields отобразит ваши свойства в столбцы сеток.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню