Gridview: Display row one by one on a page

Gridview is one of the most popular control in ASP.NET webform. It already provides a lot of functionality out of the box but sometimes our project needs special things like showing one record per page. In this post, I will show you how to achieve this. See the below code its; self-explanatory

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SinglePage.aspx.cs" Inherits="SinglePage" %>  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head runat="server">  
 <title>Untitled Page</title>  
</head>  
<body>  
 <form id="form1" runat="server">  
     <div>  
          
         <asp:TextBox ID="txtProductName" runat="server" OnDataBinding="txtDataBind"></asp:TextBox>  
         <asp:TextBox ID="txtProductid" runat="server"></asp:TextBox>  
         <asp:Button ID="btnPrevious" runat="server" Text="Previous" OnClick="PrevBtn"></asp:Button>  
         <asp:Button ID="btnNext" runat="server" Text="Next" OnClick="NextBtn"></asp:Button>  
     </div>  
 </form>  
</body>  
</html>  
using System;  
using System.Data;  
using System.Configuration;  
using System.Collections;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  

public partial class SinglePage : System.Web.UI.Page  
{  
 DataTable dt;  
 protected void Page_Load(object sender, EventArgs e)  
 {  
dt = GetDataTable() as DataTable;  

     if (!Page.IsPostBack)  
     {  
         ViewState["CurrentPos"] = 0;  
         this.DataBind();  
     }  
 }  
 protected void PrevBtn(object sender, System.EventArgs e)  
 {  
     try  
     {  
         int CurrentPos = (int)ViewState["CurrentPos"];  
         if (CurrentPos > 0)  
         {  
             CurrentPos -= 1;  
         }  
         ViewState["CurrentPos"] = CurrentPos;  
         this.DataBind();  
     }  
     catch (Exception ex)  
     {  
         Response.Write(ex.Message);  
     }  
 }  

 protected void NextBtn(object sender, System.EventArgs e)  
 {  
     try  
     {  
         int CurrentPos = (int)ViewState["CurrentPos"];  
         CurrentPos += 1;  
         if (CurrentPos > dt.Rows.Count)  
         {  
             CurrentPos -= 1;  
         }  
         ViewState["CurrentPos"] = CurrentPos;  
         this.DataBind();  
     }  
     catch (Exception ex)  
     {  
         Response.Write(ex.Message);  
     }  
 }  

 protected void txtDataBind(Object sender, System.EventArgs e)  
 {  
     try  
     {  
         int CurrentPos = (int)ViewState["CurrentPos"];  
         ViewState["CurrentPos"] = CurrentPos;  
         txtProductid.Text = dt.Rows[CurrentPos]["productid"].ToString();  
         txtProductName.Text = dt.Rows[CurrentPos]["productname"].ToString();  
     }  
     catch (Exception ex)  
     {  
         Response.Write(ex.Message);  
     }  
 }  
 private DataTable GetDataTable()  
 {  
     //create table  
     DataTable dt = new DataTable("Product");  
     dt.Columns.Add("ProductID", Type.GetType("System.Int32"));  
     dt.Columns.Add("ProductName", Type.GetType("System.String"));  
    
     //create fields  
     DataColumn[] pk = new DataColumn[1];  
     pk[0] = dt.Columns["ProductID"];  
     dt.PrimaryKey = pk;  
     dt.Columns["ProductID"].AutoIncrement = true;  
     dt.Columns["ProductID"].AutoIncrementSeed = 1;  
     dt.Columns["ProductID"].ReadOnly = true;  

     //fill rows  
     DataRow dr;  
     for (int x = 1; x <= 10; x++)  
     {  
         //make every other one different  
         if (Math.IEEERemainder(x, 2) == 0)  
         {  
             dr = dt.NewRow();  
             dr["ProductName"] = "Riss";  
             
             dt.Rows.Add(dr);  
         }  
         else  
         {  
             dr = dt.NewRow();  
             dr["ProductName"] = "Product";  
           
             dt.Rows.Add(dr);  

         }  
     }  

     return dt;  
 }  
}

Please do not post any spam link in the comment box😊

Post a Comment (0)
Previous Post Next Post