Я работаю с страницей asp.net. Я использую элемент управления DataList
. Я вижу, что этот элемент управления не имеет шаблона персонального вызова, поэтому я использую управление PagedDataSource
(для первого раза). Мне нужно, чтобы показать предыдущий, следующий и пронумерованных страниц, как:Пейджинг в DataList с использованием PagedDatasource
previous 1 2 3 4 5 next View ALL
Вот что я сделал до сих пор:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PagedDataSource pg = new PagedDataSource();
pg.DataSource = HRCompany.GetList().DefaultView;
pg.AllowPaging = true;
pg.PageSize = 8;
CompaniesDataList.DataSource = pg;
CompaniesDataList.DataBind();
}
}
public int CurrentPage
{
get
{
// look for current page in ViewState
object o = this.ViewState["_CurrentPage"];
if (o == null)
return 0; // default page index of 0
else
return (int)o;
}
set
{
this.ViewState["_CurrentPage"] = value;
}
}
private void cmdPrev_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the previous page
CurrentPage -= 1;
// Reload control
PagedDataSource pg = new PagedDataSource();
pg.DataSource = HRCompany.GetList().DefaultView;
CompaniesDataList.DataSource = pg;
CompaniesDataList.DataBind();
}
private void cmdNext_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the next page
CurrentPage += 1;
// Reload control
PagedDataSource pg = new PagedDataSource();
pg.DataSource = HRCompany.GetList().DefaultView;
CompaniesDataList.DataSource = pg;
CompaniesDataList.DataBind();
}
но я не вижу следующую страницу на предыдущей или следующей кнопки мыши. Кроме того, как я могу показать номера страниц на основе записей и показать все записи, если пользователь нажимает Просмотреть все. Кроме того, мне нужно изменить хранимую процедуру, чтобы разрешить пейджинг?
Моя хранимая процедура выглядит следующим образом:
ALTER PROCEDURE [dbo].[hr_Companies_GetByIDAndName]
@CompanyID INT,
@CompanyName VARCHAR(100),
@Lang int = 1
AS
BEGIN
SET NOCOUNT ON;
SELECT C.*
FROM dbo.hr_Companies C
WHERE C.Deleted = 0
AND C.CompanyID = @CompanyID
AND @CompanyName = CASE WHEN @Lang = 1 then NameLang1 ELSE NameLang2 END
END
Просьба предложить.