2015-09-21 2 views
0

У меня есть вложенное gridview, которое прекрасно работает с одной, казалось бы, простой проблемой. Я не хочу, чтобы заголовки повторялись в каждом дочернем gridview. Я хотел бы, чтобы заголовки для дочернего gridview отображались в области TemplateField HeaderText родительского gridview. Кажется, я не могу найти хороший способ сделать это.Одиночная строка заголовка для дочернего gridview

Например, я в настоящее время это ....

gv1Header 

      gv2Header gv2Header 

data   data  data 
       data  data 

      gv2Header gv2Header 
data   data  data  
       data  data 

Но я хотел бы видеть это ...

gv1Header gv2Header gv2Header 
    data   data  data 
       data  data 
    data   data  data 
       data  data 

Любые идеи? Огромное спасибо.

ответ

0

Реализовать событие GridView RowDataBound и сохранить значение для каждой ячейки в столбце gv1Header. Если значение в ячейке совпадает с предыдущим значением, установите для текста ячейки пустую строку.

0

Самый простой способ использовать несколько внутренний GridView для каждого столбца и установить

ShowHeader = «ложь»

Например, если ваша внутренняя сетка имеет 3 колонки следует добавить 3 TemplateField в основной сетка.

<asp:GridView runat="server" ID="grd" AutoGenerateColumns="false"> 

     <Columns> 
      <asp:BoundField HeaderText="col1" DataField="name" /> 

      <asp:TemplateField HeaderText="Col2" > 
       <ItemTemplate> 

        <asp:GridView runat="server" ID="fdf" ShowHeader="false"> 
         <Columns> 
          <asp:BoundField DataField="InnerCol1" /> 
         </Columns> 
        </asp:GridView> 

       </ItemTemplate> 
      </asp:TemplateField> 


      <asp:TemplateField HeaderText="Col3" > 
       <ItemTemplate> 

        <asp:GridView runat="server" ID="fdf" ShowHeader="false"> 
         <Columns> 
          <asp:BoundField DataField="InnerCol2" /> 
         </Columns> 
        </asp:GridView> 

       </ItemTemplate> 
      </asp:TemplateField> 



     </Columns> 

    </asp:GridView> 
Смежные вопросы