Нужна идея для дизайна моей сетки. asp.net (c #) gridview - PullRequest
2 голосов
/ 27 мая 2010

Моя DataGrid содержит всего 32 столбца. Мне нужно отобразить мой первый 4 столбец как столбец по умолчанию Для оставшегося столбца мне нужно просматривать с помощью полосы прокрутки. (Не прокрутка страницы нужна полоса прокрутки внутри моего вида сетки)

Ответы [ 2 ]

0 голосов
/ 28 мая 2010

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

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

Вот еще одно решение с использованием CSS ... но я не пробовал: http://www.codeproject.com/KB/webforms/FreezePaneDatagrid.aspx

Если вы используете сторонние элементы управления, такие как Telerik RadGrid, они обычно имеют встроенные свойства для управления Freezing Columns.

0 голосов
/ 27 мая 2010

Попробуйте это

<asp:GridView ID="GridView1" runat="server">
<Columns>
  <asp:BoundField HeaderText="Column 1" />
  <asp:BoundField HeaderText="Column 2" />
  <asp:BoundField HeaderText="Column 3" />
  <asp:BoundField HeaderText="Column 4" />
  <asp:TemplateField>
    <ItemTemplate>
      <div style="overflow: scroll; width: 400px;">
        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Column 5") %>'></asp:Label>
        <asp:Label ID="Label3" runat="server" Text='<%# Eval("Column 6") %>'></asp:Label>
        <asp:Label ID="Label4" runat="server" Text='<%# Eval("Column 7") %>'></asp:Label>
        <asp:Label ID="Label5" runat="server" Text='<%# Eval("Column 8") %>'></asp:Label>
        <asp:Label ID="Label6" runat="server" Text='<%# Eval("Column 9") %>'></asp:Label>
        ....
        <asp:Label ID="Label7" runat="server" Text='<%# Eval("Column 32") %>'></asp:Label>
      </div>
    </ItemTemplate>
  </asp:TemplateField>
</Columns>

...