2010-02-03 4 views

ответ

0

есть в этой записи Codeproject: Fixed Header in ASP.NET DataGrid

+0

выражение (this.offsetParent.scrollTop); имеет проблемы с firefox и chrome –

+0

Также код, указанный на этом сайте CodeProject, не работал для меня в Firefox. Я все еще ищу ответ. – bgmCoder

1

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

Я использовал jQuery, чтобы все ширины столбцов совпадали.

Для полного описания см этого поста: Scrollable DataGrid table with Fixed Header with jQuery

0

Чтобы решить эту проблему, я поместил вторую DataGrid над оригиналом, я размером всех столбцов в обоих DataGrids одинаково. В datagrid, который показывает данные, я устанавливаю заголовок, который не отображается. В коде позади я связал верхний datagrid с пустой таблицей данных и установил связанные поля, чтобы показать заголовок, когда пуст.

<div style="padding-bottom:2px"> 
 
<asp:GridView id="RoleListHeader" runat="server" AutoGenerateColumns="false" showheaderwhenempty="True" showheader="true" height="20px" width="350px" selectedrowstyle-height="20px" rowstyle-height="20px" headerstyle-height="10px" forecolor="#ff333333" backcolor="White"> 
 
\t <columns> 
 
\t \t <asp:TemplateField ItemStyle-Width="23"> 
 
        <ItemTemplate> 
 
        \t <asp:CheckBox></asp:CheckBox> 
 
\t \t \t \t \t </ItemTemplate> 
 
       </asp:TemplateField> 
 
\t \t <asp:BoundField DataField="SystemDesc" HeaderText="Role Description" ReadOnly="true" ItemStyle-Width="174"></asp:BoundField> 
 
\t \t <asp:BoundField DataField="EndDate" HeaderText="EndDate" ReadOnly="true" ItemStyle-Width="153"></asp:BoundField> 
 
\t </columns> 
 
</asp:GridView> 
 
</div> 
 
<div style="max-height:300px;overflow:auto"> 
 
<asp:GridView id="RoleList" runat="server" AutoGenerateColumns="false" showheaderwhenempty="True" showheader="false" height="0px" width="350px" selectedrowstyle-height="20px" rowstyle-height="20px" headerstyle-height="10px" forecolor="#ff333333" backcolor="White" rowstyle-horizontalalign="Center" rowstyle-borderstyle="Solid" rowstyle-bordercolor="#ff404040"> 
 
\t <columns> 
 
\t \t <asp:TemplateField ItemStyle-Width="23"> 
 
        <ItemTemplate> 
 
        \t <asp:CheckBox runat="server" OnCheckedChanged="GVChkBox_CheckChanged" AutoPostBack="true"></asp:CheckBox> 
 
\t </ItemTemplate> 
 
       </asp:TemplateField> 
 

 
\t \t <asp:BoundField DataField="SystemDesc" HeaderText="Role Description" ReadOnly="true" ItemStyle-Width="174"></asp:BoundField> 
 
\t \t <asp:BoundField DataField="EndDate" HeaderText="EndDate" ReadOnly="true" ItemStyle-Width="153"></asp:BoundField> 
 
\t \t <asp:BoundField DataField="ADHSystemId" ShowHeader="false"></asp:BoundField> 
 
\t </columns> 
 
</asp:GridView> 
 
</div>

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