Фактически Datalist не содержит свойство allowpaging. так как я могу настроить пейджинг в datalist.Как настроить пейджинг в элементе управления DataList в asp.net?
ответ
Используйте PagedDataSource
класса, который инкапсулирует пейджинговые связанные свойства элемента управления с привязкой к данным, которые позволяют ему выполнять подкачку .......
//creating the PagedDataSource instance....
pg = new PagedDataSource();
pg.DataSource = myTable;
pg.AllowPaging = true;
pg.PageSize = 10;
//Binding pg to datalist
dl.DataSource = pg;//dl is datalist
dl.DataBind();
См этого Adding Paging Support to the Repeater or DataList with the PagedDataSource Class
Создания уровня страницы объект ресурса страницы.
PagedDataSource objPds;
// Populate the repeater control with the DataSet at page init or pageload
objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
// Indicate that the data should be paged
objPds.AllowPaging = true;
// Set the number of items you wish to display per page
objPds.PageSize = 3;
Вдобавок сохраните текущий индекс страницы в представлении или сеансе.
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
ItemsGet();
}
private void cmdNext_Click(object sender, System.EventArgs e)
{
// Set viewstate variable to the next page
CurrentPage += 1;
// Reload control
ItemsGet();
}
проверить это один также: Efficient Data Paging with the ASP.NET 2.0 DataList Control and ObjectDataSource
я получил ответ ..
DataTable dt = new DataTable();
var data = objclsfileupload.selectPendingContent(Session["UserId"].ToString());// Iqueryable data
var data2 = data.GetEnumerator();
dt.Columns.Add("agegroup");
dt.Columns.Add("contenttype");
while (data2.MoveNext())
{
var record = (filuploadclass)data2.Current;
dt.Rows.Add(record.agegroup, record.ContenetType);
}
pg.DataSource =dt.DefaultView ;
pg.AllowPaging = true;
pg.PageSize = 1;
DataList1.DataSource = pg;
DataList1.DataBind();
приятный ответ .. вы действительно заслуживаете того, чтобы проголосовать за это .. измените свой запрос на ошибку 'error: не удается вычислить Count для источника данных, который не реализует ICollection.', что у вас есть ответ , это не касается заданного пейджинга. Используйте 'data.ToList()' вместо ручной выборки одного элемента. –
Я пробовал, но он дает ошибку PagedDataSource pg = new PagedData Источник(); pg.DataSource = objclsfileupload.selectPendingContent (Session ["UserId"]. ToString()); pg.AllowPaging = true; pg.PageSize = 1; DataList1.DataSource = pg; DataList1.DataBind(); error: Невозможно вычислить Count для источника данных, который не реализует ICollection. –
Можете ли вы указать ошибку ?? –
error: Невозможно вычислить Count для источника данных, который не реализует ICollection –