Alphabetic Paging using gridview control in Asp.net

Satyapriyanayak
Posted by Satyapriyanayak under ASP.NET category on | Points: 40 | Views : 2238
Here iam going to show Alphabetic Paging using gridview control.Here user can find data according to respective alphabet  link and  also can find all the data by clicking all link

Create a table Customers with column Cus_Code varchar(50), Cus_Name varchar(50), Cus_address varchar(MAX), Cus_sal int.


Default.aspx.cs code

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
private string cnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ViewState["SelectedText"] = "All";
CreateAlphaPagings();
BindGrid(this.ViewState["SelectedText"].ToString());
}
}
private void CreateAlphaPagings()
{
lbTitle.Text = "Alphabetic Paging Sample";
DataTable dt = new DataTable();
dt.Columns.Add("PageIndex");
dt.Columns.Add("PageText");

if (this.ViewState["Paging"] == null)
{
for (int i = 65; i <= (65 + 25); i++)
{
DataRow dr = dt.NewRow();
dr[0] = Char.ConvertFromUtf32(i);
dr[1] = Char.ConvertFromUtf32(i);
dt.Rows.Add(dr);
}

DataRow drNew = dt.NewRow();
drNew["PageIndex"] = "All";
drNew["PageText"] = "All";
dt.Rows.Add(drNew);


this.ViewState["Paging"] = dt;
}
else
dt = (DataTable)this.ViewState["Paging"];


DataList1.DataSource = dt;
DataList1.DataBind();

}
private void BindGrid(string StartAlpha)
{
SqlConnection con = new SqlConnection(cnstr);
string sql = "";

if (StartAlpha == "All")
sql = "Select * from Customers Order By Cus_Code asc";
else
sql = "Select * from Customers Where Cus_Name Like '" + StartAlpha + "%' Order By Cus_Code asc ";

SqlDataAdapter da = new SqlDataAdapter(sql, cnstr);
DataTable dtSelect = new DataTable();
da.Fill(dtSelect);

GridView1.DataSource = dtSelect;
GridView1.DataBind();

}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
LinkButton lbkbtnPaging = (LinkButton)e.CommandSource;
BindGrid(e.CommandArgument.ToString());
this.ViewState["SelectedText"] = e.CommandArgument.ToString();
CreateAlphaPagings();
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
if (this.ViewState["SelectedText"] != null)
{
LinkButton lbkbtnPaging = (LinkButton)e.Item.FindControl("lnkbtnPaging");
if (this.ViewState["SelectedText"].ToString() == lbkbtnPaging.Text)
lbkbtnPaging.Enabled = false;
}
}
}
}

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

<!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>
<h2><asp:Label ID="lbTitle" runat="server" Text=""></asp:Label>
<asp:DataList ID="DataList1" OnItemCommand="DataList1_ItemCommand"
OnItemDataBound="DataList1_ItemDataBound" RepeatDirection="Horizontal" runat="server">

<SeparatorTemplate>
|
</SeparatorTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkbtnPaging" runat="server" CommandArgument='<%# Bind("PageIndex") %>'
Text='<%# Bind("PageText") %>'></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
</h2>
<br />

<asp:GridView ID="GridView1" runat="server" EmptyDataText="No Records Found">
</asp:GridView>

</div>
</form>
</body>
</html>

Comments or Responses

Login to post response