asp .net中的datalist分页 [英] datalist paging in asp .net

查看:108
本文介绍了asp .net中的datalist分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我想要使用Entity Framework来设置数据列表,但结果只是查看一页:

这是我的代码:



 testEntities context =  new  testEntities(); 
受保护 void Page_Load( object sender,EventArgs e)
{
if (!IsPostBack)
{
BindDataList( 10 0 );
}
else
{
PlaceHolder1.Controls.Clear();
CreatePagingControl();
}
}

私有 int RowCount
{
get
{
return int )ViewState [ RowCount];
}
set
{
ViewState [ RowCount] = value ;
}
}
私有 void BindDataList( int take, int pageSize)
{


var query =( from p in context.testTBL < span class =code-sdkkeyword> orderby p.testID select p).Take(take).Skip(pageSize).ToList();
PagedDataSource page = new PagedDataSource();
page.AllowCustomPaging = true ;
page.AllowPaging = true ;
page.DataSource = query;
page.PageSize = 3 ;
DataList1.DataSource = page;
DataList1.DataBind();

if (!IsPostBack)
{
RowCount = query.Count;
CreatePagingControl();
}
}

私有 void CreatePagingControl( )
{
for int i = 0 ; i < (RowCount / 10 )+ 1 ; i ++)
{
LinkBut​​ton lnk = new LinkBut​​ton();
lnk.Click + = new EventHandler(lbl_Click);
lnk.ID = lnkPage +(i + 1 )的ToString();
lnk.Text =(i + 1 )。ToString();
PlaceHolder1.Controls.Add(lnk);
Label spacer = new Label();
spacer.Text = ;
PlaceHolder1.Controls.Add(spacer);
}
}
void lbl_Click( object sender,EventArgs e )
{
LinkBut​​ton lnk = sender as LinkBut​​ton;
int currentPage = int .Parse(lnk.Text);
int take = currentPage * 10 ;
int skip = currentPage == 1 0 :take - 10 ;
BindDataList(take,skip);这是HTML代码:

b $ b

 <   div  >  
< asp:DataList ID = DataList1 runat = server >
< ItemTemplate >
< % #Eval( testID)%>
< / ItemTemplate >
< / asp:DataList >
< asp:PlaceHolder ID = PlaceHolder1 runat = < span class =code-keyword> server > < / asp:PlaceHolder >
< / div >





这是输出:

< img src =http://upload.tehran98.com/img1/51wdlucih589qjbr42ke_thumb.pngborder =0alt =51wdlucih589qjbr42ke.png/>



请帮帮我!!!谢谢

解决方案

嗨:



我认为你丢失了你的页码。所以尽量保留隐藏的项目或会话值这个NumberPage,因为pageNumbe是相同的值是可以的


Hi I want pagging datalist with use Entity Framework but the result is just view one page :
This is my code :

testEntities context=new testEntities();
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindDataList(10, 0);
    }
    else
    {
        PlaceHolder1.Controls.Clear();
        CreatePagingControl();
    }
}

private int RowCount
{
    get
    {
        return (int)ViewState["RowCount"];
    }
    set
    {
        ViewState["RowCount"] = value;
    }
}
private void BindDataList(int take, int pageSize)
{


    var query = (from p in context.testTBL orderby p.testID select p).Take(take).Skip(pageSize).ToList();
    PagedDataSource page = new PagedDataSource();
    page.AllowCustomPaging = true;
    page.AllowPaging = true;
    page.DataSource = query;
    page.PageSize = 3;
    DataList1.DataSource = page;
    DataList1.DataBind();

    if (!IsPostBack)
    {
        RowCount = query.Count;
        CreatePagingControl();
    }
}

private void CreatePagingControl()
{
    for (int i = 0; i < (RowCount / 10) + 1; i++)
    {
        LinkButton lnk = new LinkButton();
        lnk.Click += new EventHandler(lbl_Click);
        lnk.ID = "lnkPage" + (i + 1).ToString();
        lnk.Text = (i + 1).ToString();
        PlaceHolder1.Controls.Add(lnk);
        Label spacer = new Label();
        spacer.Text = " ";
        PlaceHolder1.Controls.Add(spacer);
    }
}
void lbl_Click(object sender, EventArgs e)
{
    LinkButton lnk = sender as LinkButton;
    int currentPage = int.Parse(lnk.Text);
    int take = currentPage * 10;
    int skip = currentPage == 1 ? 0 : take - 10;
    BindDataList(take, skip);
}



this is HTML code :

<div>
    <asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
            <%# Eval("testID")%>
        </ItemTemplate>
    </asp:DataList>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</div>



And this is Output :
<img src="http://upload.tehran98.com/img1/51wdlucih589qjbr42ke_thumb.png" border="0" alt="51wdlucih589qjbr42ke.png" />

Please help me !!! thanks

解决方案

Hi:

I think that your lose your Page Number. So try to keep in hidden item or session value this NumberPage, becouse is posible that the pageNumbe is the same value


这篇关于asp .net中的datalist分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆