Hi
I have datalist in my page and I use pagination for my data list:
private void GetCustomersPageWise(int pageIndex)
{
if (Request.QueryString["H_name"] != "all")
{
string BehCode = "";
using (SqlCommand cmd = new SqlCommand("GetCustomersPageWise1", _cn))
{
if (!(Request.QueryString["H_name"] == null))
{
BehCode = Request.QueryString["H_name"];
lblmain.Visible = true;
Label1.Visible = false;
}
else if (!(Request.QueryString["subset"] == null))
{
BehCode = Request.QueryString["subset"];
lblmain.Visible = false;
Label1.Visible = true;
}
cmd.CommandType = CommandType.StoredProcedure;
string data1 = Request.QueryString["id"].ToString();
cmd.Parameters.AddWithValue("@id",data1);
cmd.Parameters.AddWithValue("@H_name", BehCode);
cmd.Parameters.AddWithValue("@subset", BehCode);
cmd.Parameters.AddWithValue("@Region", DDLzone1.SelectedItem.Text);
_cn.Open();
IDataReader idr = cmd.ExecuteReader();
DataList1.DataSource = idr;
DataList1.DataBind();
idr.Close();
_cn.Close();
int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
this.PopulatePager(recordCount, pageIndex);
}
}
else
{
using (SqlCommand cmd = new SqlCommand("GetCustomersPageWise", _cn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
cmd.Parameters.AddWithValue("@PageSize", PageSize);
cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4);
cmd.Parameters.AddWithValue("@Region", DDLzone1.SelectedItem.Text);
DDLstore1.SelectedItem.Text.Trim());
cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
_cn.Open();
IDataReader idr = cmd.ExecuteReader();
DataList1.DataSource = idr;
DataList1.DataBind();
idr.Close();
_cn.Close();
int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
this.PopulatePager(recordCount, pageIndex);
}
}
}
protected void Page_Changed(object sender, EventArgs e)
{
int pageIndex = int.Parse((sender as LinkButton).CommandArgument);
this.GetCustomersPageWise(pageIndex);
}
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / (decimal)PageSize);
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
pages.Add(new ListItem("<<", "1", currentPage > 1));
if (currentPage != 1)
{
pages.Add(new ListItem("Previous", (currentPage - 1).ToString()));
}
for (int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
if (currentPage != pageCount)
{
pages.Add(new ListItem("next", (currentPage + 1).ToString()));
}
pages.Add(new ListItem(">>", pageCount.ToString(), currentPage < pageCount));
}
rptPager.DataSource = pages;
rptPager.DataBind();
}
ok this pagination is like below
<< next 1 2 3 4 5 6 7 8 9 10 Previuos >>
it show all pages
I want datalist pagination be like below
<< Next 1 2 3 4 ... Previous >>
and when i click on 4 it change like below
<< Next ... 5 6 7 8 9 10 Previous >>
Or some thing like that I mean I want some Pagination that doesn't show all pages
How I can do it?
Thanks