Custom Paging
Hello sir, here i'm giving my code............
protected void Page_Load(object sender, EventArgs e)
{
//Keep at top because it specifies the total no. of records available in the table
if (!Page.IsPostBack)
{
//Current Page No.
ViewState["Current_PNo"] = 1;
//State Page No.
ViewState["Current_Start"] = 1;
//Last Page No.
ViewState["Current_Last"] = 4;
//lblMsg.Text = ViewState["Current_Start"].ToString() + "," + ViewState["Current_Last"].ToString();
//Set MaxRow
ViewState["MaxRow"] = 10;
//startNo and maxNo
bindDataList(1, int.Parse(ViewState["MaxRow"].ToString()));
//Creates the paging nos i.e. 1,2,3,4
createPagingControl(int.Parse(ViewState["Current_Start"].ToString()),int.Parse(ViewState["Current_Last"].ToString()));
}
else
{
int start = Convert.ToInt32(ViewState["Current_Start"].ToString());
int last= Convert.ToInt32(ViewState["Current_Last"].ToString());
createPagingControl(start,last);
}
}
public void bindDataList(int startRow,int maxRow)
{
using (SqlConnection mCon = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ToString()))
{
int maxRow_New = startRow + maxRow;
Session["MaxRow"] = maxRow_New.ToString();
//string strsql = "Select * From Table2 Where Active=1 and ID>="+startRow+" and ID<="+maxRow_New+" ";
string strsql = null;
strsql="Select *,Total=(Select Count(*) From Table2 Where Active=1) "+
"From Table2 Where Active=1 and ID>="+startRow+" and ID<="+maxRow+" ";
SqlCommand mDataCom = new SqlCommand();
mDataCom.Connection = mCon;
mDataCom.CommandText = strsql;
mDataCom.CommandType = CommandType.Text;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(mDataCom);
da.Fill(ds);
PagedDataSource page = new PagedDataSource();
page.AllowPaging = true;
//Set Total No. of Rows in the Database
ViewState["RowCount"] = ds.Tables[0].Rows[0]["Total"].ToString();
//Set maxRow
page.PageSize = int.Parse(ViewState["MaxRow"].ToString());
page.DataSource = ds.Tables[0].DefaultView;
//DataList1.DataSource = ds.Tables[0];
DataList1.DataSource = page;
DataList1.DataBind();
}
}
public void createPagingControl(int start,int last)
{
int rowCount = Convert.ToInt32(ViewState["RowCount"].ToString());
PlaceHolder1.Controls.Clear();
if (rowCount / int.Parse(ViewState["MaxRow"].ToString()) >= last)
{
for (int i = start; i <= last; i++)
{
LinkButton lnk = new LinkButton();
lnk.Text = i.ToString();
lnk.ToolTip = i.ToString() + ", Paging No.";
lnk.Click += new EventHandler(lnk_Click);
Label lbl = new Label();
lbl.Text = "&nbsp;";
PlaceHolder1.Controls.Add(lnk);
PlaceHolder1.Controls.Add(lbl);
lnk.Style["text-decoration"] = "underline";
lnk.Style["Color"] = "DarkBlue";
lnk.Enabled = true;
}
}
}
public void lnk_Click(object sender, EventArgs e)
{
LinkButton lnk= sender as LinkButton;
lnk.Style["text-decoration"] = "none";
lnk.Style["Color"] = "Maroon";
lnk.Enabled = false;
int currentPage = int.Parse(lnk.Text);
//Multiply by maxRow
int maxRow = currentPage * int.Parse(ViewState["MaxRow"].ToString());
int startRow = currentPage == 1 ? 1 : maxRow - (int.Parse(ViewState["MaxRow"].ToString())-1);
bindDataList(startRow, maxRow);
}
public void lnkClick(int cureentPage)
{
//LinkButton lnk = sender as LinkButton;
LinkButton lnk = new LinkButton();
lnk.Text = cureentPage.ToString();
lnk.Style["text-decoration"] = "none";
lnk.Style["Color"] = "Maroon";
lnk.Enabled = false;
int currentPage = int.Parse(lnk.Text);
//Multiply by maxRow
int maxRow = currentPage * int.Parse(ViewState["MaxRow"].ToString());
int startRow = currentPage == 1 ? 1 : maxRow - (int.Parse(ViewState["MaxRow"].ToString()) - 1);
bindDataList(startRow, maxRow);
}
protected void lnkNext_Click(object sender, EventArgs e)
{
int start= Convert.ToInt32(ViewState["Current_Last"].ToString())+1;
int last = Convert.ToInt32(ViewState["Current_Last"].ToString()) + 4;
ViewState["Current_Start"] = start.ToString();
ViewState["Current_Last"] = last.ToString();
lblMsg.Text = ViewState["Current_Start"].ToString() + "," + ViewState["Current_Last"].ToString();
int currentPage = int.Parse(ViewState["Current_Start"].ToString());
ViewState["Empty"] = start.ToString();
lnkClick(currentPage);
createPagingControl(start,last);
//lblMsg.Text = "Next Clicked";
}
|