ASP.net Grid-пейджинг с объединенными строками - PullRequest
2 голосов
/ 29 марта 2012

В настоящее время я использую GridView для отображения табличных данных. Мне нужно объединить ячейки в первом столбце, которые имеют равные значения. На данный момент у меня есть код в событии PreRender, чтобы установить для меня свойство RowSpan, и оно работает нормально.

Проблема в том, что я не могу использовать подкачку страниц, поскольку страницы будут разбиты в середине раздела, где первое поле равно.

Я хочу, чтобы количество записей для разбивки на страницы подсчитывалось по одному для каждой объединенной строки, а не для каждой подстроки.

Возможно ли это с GridView или какой-либо другой сеткой jQuery?

Ответы [ 2 ]

0 голосов
/ 19 января 2015
for (i = PagSize; i <= dt.Rows.Count; i++)
{
    Curr = dt.Rows[i - 1]["Brand"].ToString();
    if (i < dt.Rows.Count)
    {
        Nxt = dt.Rows[i]["Brand"].ToString();
        diff = dt.Rows.Count - i;
        if (Curr != Nxt)
        {
            DctPaging.Add(PageNum, i);
            PageNum = PageNum + 1;
            i = i + PagSize;
            if (i >= dt.Rows.Count)
            {
                DctPaging.Add(PageNum, i);
                break;
            }
        }
    }
}

Ссылка Нажмите здесь

0 голосов
/ 29 марта 2012

Вместо обработки слияния на уровне пользовательского интерфейса, будет ли работать подготовка источника данных таким образом, чтобы можно было просто привязать его непосредственно к нему?

В основном создайте модель представления, которая содержит данные в более простом формате для привязки.

GridView.DataSource() = vmAlreadyMergedAndReadtToGoOBject
GridView.DataBind();

Я не уверен, откуда вы получаете данные, но разве вы не можете построить объект, который вы привязываете к вашей сетке программно, на основе набора результатов, который вы получаете из своего источника (базы данных?) Затем, если вы создадите этот объект путем объединения одинаковых значений строк, вы можете просто привязать к нему сетку ... Не совсем понятно, что вы делаете, но это было первое, что пришло в голову ....

...