<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AlphabeticalPaging.aspx.cs" Inherits="AlphabeticalPaging" %> <!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:GridView ID="GridView1" ShowFooter="True" runat="Server" OnRowCommand="GridView1_RowCommand" OnRowCreated="GridView1_RowCreated" OnPageIndexChanging="GridView1_PageIndexChanging"> </asp:GridView> </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 AlphabeticalPaging : System.Web.UI.Page { DataTable data; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bindGrid(""); } } DataTable GetData() { data = Session["data"] as DataTable; if (data != null) { return data; } data = new DataTable(); DataColumn primaryColumn = new DataColumn("carid", typeof(Int32)); data.Columns.Add(primaryColumn); data.Columns.Add(new DataColumn("year", typeof(Int32))); data.Columns.Add(new DataColumn("make", typeof(string))); data.Columns.Add(new DataColumn("model", typeof(string))); DataRow dr; dr = data.NewRow(); dr[0] = 1; dr[1] = 1998; dr[2] = "Isuzu"; dr[3] = "Trooper"; data.Rows.Add(dr); dr = data.NewRow(); dr[0] = 2; dr[1] = 2000; dr[2] = "Honda"; dr[3] = "Civic"; data.Rows.Add(dr); dr = data.NewRow(); dr[0] = 3; dr[1] = 2000; dr[2] = "BMW"; dr[3] = "GM"; data.Rows.Add(dr); dr = data.NewRow(); dr[0] = 4; dr[1] = 2000; dr[2] = "Swift"; dr[3] = "Tata"; data.Rows.Add(dr); DataColumn[] primaryColumns = new DataColumn[1]; primaryColumns[0] = primaryColumn; data.PrimaryKey = primaryColumns; Session["data"] = data; return data; } protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { //Use This Code in your RowCreated Event. //A LinkButton with text="All " can be added to //Gridview footer to bring back all the records. if (e.Row.RowType == DataControlRowType.Footer) { TableCell cell = e.Row.Cells[0]; cell.ColumnSpan = 2; cell.Controls.Clear(); LinkButton lb = new LinkButton(); lb.Text = "All "; lb.CommandArgument = "All "; lb.CommandName = "AlphaPaging"; cell.Controls.Add(lb); for (int i = 65; i <= (65 + 25); i++) { lb = new LinkButton(); lb.Text = Char.ConvertFromUtf32(i) + " "; lb.CommandArgument = Char.ConvertFromUtf32(i); lb.CommandName = "AlphaPaging"; cell.Controls.Add(lb); } } } void bindGrid(string alphabet) { DataView dv; if (alphabet == "All ") { dv = new DataView(GetData()); } else { dv = new DataView(GetData()); dv.RowFilter = String.Format("model LIKE '%{0}%'", alphabet); } GridView1.DataSource = dv; GridView1.DataBind(); } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("AlphaPaging")) { ViewState["Alphabet"] = e.CommandArgument.ToString(); bindGrid(e.CommandArgument.ToString()); } } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; bindGrid(ViewState["Alphabet"].ToString()); } }


No comments:
Post a Comment