Introduction
In this post, I am implementing How to freeze gridview column in asp.net using jquery.GridView doesn’t have the ability to scroll. Here in this post I have explained How to do this with keeping same style and without changing anything in the gridview.
My previous post: How to make Scrollable GridView with a Fixed Header (freeze row) in .NET
Steps :
Step - 1 : Create New Project.
Go to File > New > Project > Select asp.net web forms application > Entry Application Name > Click OK.Step-2: Add a Database.
Go to Solution Explorer > Right Click on App_Data folder > Add > New item > Select SQL Server Database Under Data > Enter Database name > Add.Step-3: Create table for fetch data.
Open Database > Right Click on Table > Add New Table > Add Columns > Save > Enter table name > Ok.Step-4: Add Entity Data Model.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select ADO.net Entity Data Model under data > Enter model name > Add.A popup window will come (Entity Data Model Wizard) > Select Generate from database > Next >
Chose your data connection > select your database > next > Select tables > enter Model Namespace > Finish.
Step-5: Add a Webpage and Design for Show Data in Fixed column Gridview.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select web form/ web form using master page under Web > Enter page name > Add.HTML Code
<h3>Freeze gridview column using jquery in asp.net</h3> <br /> <div id="gridContainer"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CellPadding="5" CssClass="myGrid" AlternatingRowStyle-CssClass="alt"> <Columns> <asp:BoundField DataField="UserName" HeaderText="Username" ItemStyle-Width="120px" /> <asp:BoundField DataField="FullName" HeaderText="Full Name" ItemStyle-Width="200px" /> <asp:BoundField DataField="EmailID" HeaderText="EmailID" ItemStyle-Width="200px"/> <asp:BoundField DataField="IsActive" HeaderText="Is User Active?" ItemStyle-Width="200px"/> </Columns> </asp:GridView> </div>CSS Code
<style> .myGrid { background-color: #fff; margin: 5px 0 10px 0; border: solid 1px #525252; border-collapse:collapse; } .myGrid td { padding: 2px; border: solid 1px #c1c1c1; color: #717171; } .myGrid th { padding: 4px 2px; color: #fff; background-color: #424242; border-left: solid 1px #525252; font-size: 0.9em; } .myGrid .alt { background-color: #EFEFEF; } </style>JS Code
<script> $(document).ready(function () { // here clone our gridview first var tab = $("#<%=GridView1.ClientID%>").clone(true); // clone again for freeze var tabFreeze = $("#<%=GridView1.ClientID%>").clone(true); // set width (for scroll) var totalWidth = $("#<%=GridView1.ClientID%>").outerWidth(); var firstColWidth = $("#<%=GridView1.ClientID%> th:first-child").outerWidth(); tabFreeze.width(firstColWidth); tab.width(totalWidth - firstColWidth); // here make 2 table 1 for freeze column 2 for all remain column tabFreeze.find("th:gt(0)").remove(); tabFreeze.find("td:not(:first-child)").remove(); tab.find("th:first-child").remove(); tab.find("td:first-child").remove(); // create a container for these 2 table and make 2nd table scrollable var container = $('<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top"><div id="FCol"></div></td><td valign="top"><div id="Col" style="width:320px; overflow:auto"></div></td></tr></table)'); $("#FCol", container).html($(tabFreeze)); $("#Col", container).html($(tab)); // clear all html $("#gridContainer").html(''); $("#gridContainer").append(container); }); </script>
Step-6: Write below code in page_load event for fetch data from database and show in Gridview.
protected void Page_Load(object sender, EventArgs e) { // populate data here if (!IsPostBack) { //here MyDatabaseEntities is our dbcontext using (MyDatabaseEntities dc = new MyDatabaseEntities()) { GridView1.DataSource = dc.UsersDatas.ToList(); GridView1.DataBind(); } } }
Step-7: Run Application.
- How to group columns in gridview header row in ASP.NET (programmer friendly way)
- How to Marge Gridview adjacent cells depending on cells value in ASP.NET
- How to load gridview rows on demand from database through scrolling in ASP.NET
- How to apply Databar formatting on Gridview div like Excel conditional formatting options.
- How to apply formatting on Gridview based on condition div like Excel conditional formatting options.
- How to export gridview to excel & Word file in asp.net