Замораживание столбцов и заголовков Gridview не работает с главной страницей.
я пытаюсь заморозить заголовок и столбец asp gridview. и я использую Замораживание строк и столбцов таблицы с помощью JavaScript - GridViewScroll.js | CSS скрипт[^] этот код в моем asp gridview без использования главной страницы, и он отлично работает. но когда я пробую этот код в другой форме с главной страницей, он не работает. может ли кто-нибудь предложить мне решение?
Что я уже пробовал:
вот мой код:-
Главная страница:-
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="LoginMaster.master.cs" Inherits="LoginMaster" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en"> <head> <title>master page</title> <link href="../FrezeeStyle/css/web.css" rel="stylesheet" /> <script type="text/javascript" src="../FrezeeStyle/js/gridviewscroll.js"></script> <asp:ContentPlaceHolder ID="Head" runat="server"> </asp:ContentPlaceHolder> </head> <body > <form id="form1" runat="server" enctype="multipart/form-data" method="post"> <asp:ContentPlaceHolder ID="Content" runat="server"> </asp:ContentPlaceHolder> </form> </body> </html>
Страница содержимого:-
<%@ Page Title="" Language="C#" MasterPageFile="Master.master" AutoEventWireup="true" CodeFile="Freeze.aspx.cs" Inherits="Freeze" %> <asp:Content ID="Content1" ContentPlaceHolderID="Head" Runat="Server"> <script type="text/javascript"> var gridViewScroll = null; window.onload = function () { gridViewScroll = new GridViewScroll({ elementID: "gvtest", width: "1200px", height: "350px", freezeColumn: true, freezeFooter: true, freezeColumnCssClass: "GridViewScrollItemFreeze", freezeFooterCssClass: "GridViewScrollFooterFreeze", freezeHeaderRowCount: 1, freezeColumnCount: 3, onscroll: function (scrollTop, scrollLeft) { console.log(scrollTop + " - " + scrollLeft); } }); gridViewScroll.enhance(); } </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Content" Runat="Server"> <div id='table-container' style="white-space: nowrap;width:1200px"> <asp:GridView ID="gvtest" runat="server" GridLines="Both" CellPadding="3" AutoGenerateColumns="false" HeaderStyle-BackColor="Blue" HeaderStyle-ForeColor="White" > <Columns> <asp:BoundField DataField="test1" HeaderText="Username" ItemStyle-BackColor="Gray"/> <asp:BoundField DataField="test2" HeaderText="Full Name" ItemStyle-BackColor="Gray" /> <asp:BoundField DataField="test3" HeaderText="EmailID" ItemStyle-BackColor="Gray" /> <asp:BoundField DataField="test4" HeaderText="Is User Active?" /> <asp:BoundField DataField="test5" HeaderText="Full Name" /> <asp:BoundField DataField="test6" HeaderText="EmailID" /> <asp:BoundField DataField="test7" HeaderText="Is User Active?" /> <asp:BoundField DataField="test1" HeaderText="Username" /> <asp:BoundField DataField="test2" HeaderText="Full Name" /> <asp:BoundField DataField="test3" HeaderText="EmailID" /> <asp:BoundField DataField="test4" HeaderText="Is User Active?" /> <asp:BoundField DataField="test5" HeaderText="Full Name" /> <asp:BoundField DataField="test6" HeaderText="EmailID" /> <asp:BoundField DataField="test7" HeaderText="Is User Active?" /> <asp:BoundField DataField="test1" HeaderText="Username" /> <asp:BoundField DataField="test2" HeaderText="Full Name" /> <asp:BoundField DataField="test3" HeaderText="EmailID" /> <asp:BoundField DataField="test4" HeaderText="Is User Active?" /> <asp:BoundField DataField="test5" HeaderText="Full Name" /> <asp:BoundField DataField="test6" HeaderText="EmailID" /> <asp:BoundField DataField="test7" HeaderText="Is User Active?" /> </Columns> </asp:GridView> </div> </asp:Content>
код на стороне сервера:-
на сетке привязки просто добавьте эти строки:-
if (gvtest.Rows.Count > 0) { gvtest.UseAccessibleHeader = true; gvtest.HeaderRow.TableSection = TableRowSection.TableHeader; }