Gridview с заголовками строк - PullRequest
0 голосов
/ 06 апреля 2010

Я использую элемент управления gridview ASP.NET3.5 в новом проекте. Моя проблема в том, что представление сетки представляет данные в базовом табличном формате, тогда как я хочу сетку с заголовками строк / групповым поведением. Примером этого может служить веб-интерфейс Outlook, который может группировать электронные письма по дате, а также позволяет выбирать отдельные электронные письма для отображения.

Моя проблема: я не понимаю, как это можно легко сделать с помощью Gridview? Я нашел продукт под названием Telerik, который имеет, казалось бы, модный Gridview, но я не решаюсь тратить деньги на отдельные компоненты, которые теперь также запирают меня в сторонние фреймворки ...

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

Я помню, как раньше боролся с такой проблемой, и я могу сочувствовать отсутствию помощи по этой теме, поэтому, если вы хотите сетку, вот как вы можете это сделать:

Добавьте событие OnRowDataBound в сетку:

OnRowDataBound="grv_RowDataBound"

Добавьте что-то вроде этого в ваш код:

private DateTime currentDate;
private int extraCount;

protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //assuming the cell with index 5 is the cell with the Date in it
        if (currentDate != DateTime.Parse(e.Row.Cells[5].Text))
        {
            //making a header row (so it looks different to the other rows)
            var row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
            var headerCell = new TableHeaderCell();
            headerCell.ColumnSpan = 3; //however many columns you have in your gridview
            headerCell.Text = e.Row.Cells[5].Text;
            row.Cells.Add(headerCell);
            currentDate = DateTime.Parse(e.Row.Cells[5].Text);
            extraCount++;
            grvMortgages.Controls[0].Controls.AddAt(e.Row.RowIndex + extraCount, row);
        }
    }
}
0 голосов
/ 06 апреля 2010

Для функции группировки, проверьте этот пример: http://mattberseth.com/blog/2008/01/building_a_grouping_grid_with.html

Эту вещь легче сделать с помощью ListView, чем с GridView.

0 голосов
/ 06 апреля 2010

Элемент управления Asp.Net GridView является частью семейства элементов управления в элементах управления сервером Asp.Net. Лучше всего он используется для отображения табличных данных. По умолчанию такие эффекты, как группировка строк и т. Д., Не поддерживаются. Как вы уже упоминали, естьсторонние поставщики на рынке, которые предлагают элементы управления с этими дополнительными функциями.

Большую часть времени с серверными элементами управления asp.net для предоставления готовой функции требуется создание настраиваемого элемента управления путем наследования от исходного.например, если вам нужна сортировка по всем столбцам gridview, а также вам нужно выделить выбранный в данный момент столбец, то лучше всего это сделать, создав собственный элемент управления, который наследуется от элемента управления Asp.Net GridView. В сети есть ресурсы, которые объясняют, как этоможно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...