2012-03-29 8 views
2

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

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

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

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

+1

привет Эндрю сделал вы получили й е решение для этого. столкнулись с той же проблемой с Gridview в Asp.net после объединения строк. – Venki

+0

Этот вопрос нужно еще раз. – Nicolas

ответ

0

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

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

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

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

+0

Я не знаю, как объединить строки в источнике данных - можете ли вы уточнить? – Flash

+0

Обновленный оригинальный ответ – TGH

0
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; 
      } 
     } 
    } 
} 

Ссылка Click Here

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