簡體   English   中英

如何在數據列表中添加分頁

[英]How to add paging in datalist

嗨,我已經實現了數據列表的分頁,但沒有顯示正確的分頁。

請查看此圖片。

您可以在此圖像中看到輸出,它沒有正確顯示輸出,我需要的輸出是1到10的編號,然后是這樣的,因此請在我的問題的解決方法盡快答復。

                                    <asp:DataList ID="dtlpaging" runat="server" RepeatDirection="Horizontal" OnItemDataBound="dtlpaging_ItemDataBound" >
                                        <ItemTemplate>

                                                        <asp:LinkButton ID="lnkbtnPaging" runat="server" OnClick="lnkbtnPaging_Click" Text='<%# Eval("pagetext") %>'
                                                            ValidationGroup='<%# Eval("pageindex") %>' CommandArgument='<%# Eval("pageindex") %>'
                                                            CommandName="Paging" CssClass="btn btn-info" style="padding:1px 7px;"></asp:LinkButton>

                                        </ItemTemplate>
                                    </asp:DataList>

//////////////////// c#編碼/////////////////

if (ViewState["Filterrecords"] == "")
    {
        DataTable dset = new DataTable();
        dset = dataget();
        if (dset.Rows.Count > 0)
        {
            dlouter.Visible = true;
            lblrecord.Visible = false;
            adsource = new PagedDataSource();
            adsource.DataSource = dset.DefaultView;
        }
        else
        {
            dlouter.Visible = false;
            lblrecord.Visible = true;
            adsource = new PagedDataSource();
            adsource.DataSource = dset.DefaultView;

        }
    }
    else
    {
        DataTable dt = new DataTable();
        dt = (DataTable)ViewState["Filterrecords"];
        if (dt.Rows.Count > 0)
        {
            dlouter.Visible = true;
            lblrecord.Visible = false;
            adsource = new PagedDataSource();
            adsource.DataSource = dt.DefaultView;
        }
        else
        {
            dlouter.Visible = false;
            lblrecord.Visible = true;
            adsource = new PagedDataSource();
            adsource.DataSource = dt.DefaultView;
        }
    }
    adsource.PageSize = 10;
    adsource.AllowPaging = true;
    adsource.CurrentPageIndex = pos;
    imgbtnfirst.Enabled = !adsource.IsFirstPage;
    imgbtnprevious.Enabled = !adsource.IsFirstPage;
    imgbtnlast.Enabled = !adsource.IsLastPage;
    imgbtnnext.Enabled = !adsource.IsLastPage;
    dopaging();
    dlouter.DataSource = adsource;
    dlouter.DataBind();

 protected void dtlpaging_ItemDataBound(object sender, DataListItemEventArgs e)
{
    LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");

    pos = (int)this.ViewState["vs"];
    string a = Convert.ToString(pos);

    if (lnkbtnPage.CommandArgument.ToString() == a.ToString())
    {
        lnkbtnPage.Enabled = false;
        lnkbtnPage.Style.Add("font-family", "Arial");
        lnkbtnPage.Style.Add("font-size", "11px");
        lnkbtnPage.Style.Add("color", "#000000");
        lnkbtnPage.Font.Bold = true;

    }
}
public void dopaging()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("pageindex");
    dt.Columns.Add("pagetext");
    for (int i = 0; i < adsource.PageCount; i++)
    {
        DataRow dr = dt.NewRow();
        dr[0] = i;
        dr[1] = i + 1;
        dt.Rows.Add(dr);
    }
    dtlpaging.DataSource = dt;
    dtlpaging.DataBind();
    dtlpaging1.DataSource = dt;
    dtlpaging1.DataBind();
}
 protected void lnkbtnPaging_Click(object sender, EventArgs e)
{
    int id = Convert.ToInt32(((LinkButton)sender).ValidationGroup.ToString());
    pos = id;
    this.ViewState["vs"] = pos;
    databind();
}
_PageDataSource.DataSource = dset.DefaultView;
_PageDataSource.AllowPaging = true;
_PageDataSource.PageSize = 10;
_PageDataSource.CurrentPageIndex = CurrentPage;
ViewState["totalpages"] = _PageDataSource.PageCount;
if (_PageDataSource.PageCount > 1)
{
    //paPageing.Visible = true;
    this.imgbtnprevious.Enabled = !_PageDataSource.IsFirstPage;
    this.imgbtnnext.Enabled = !_PageDataSource.IsLastPage;
    this.imgbtnfirst.Enabled = !_PageDataSource.IsFirstPage;
    this.imgbtnlast.Enabled = !_PageDataSource.IsLastPage;
}
else
{
    //paPageing.Visible = false;
}
this.dlouter.DataSource = _PageDataSource;
this.dlouter.DataBind();
this.doPaging();

 private void doPaging()
{
DataTable dt = new DataTable();
dt.Columns.Add("PageIndex");
dt.Columns.Add("PageText");

fistIndex = CurrentPage - 5;


if (CurrentPage > 5)
{
    lastIndex = CurrentPage + 5;
}
else
{
    lastIndex = 10;
}
if (lastIndex > Convert.ToInt32(ViewState["totalpages"]))
{
    lastIndex = Convert.ToInt32(ViewState["totalpages"]);
    fistIndex = lastIndex - 10;
}

if (fistIndex < 0)
{
    fistIndex = 0;
}

for (int i = fistIndex; i < lastIndex; i++)
{
    DataRow dr = dt.NewRow();
    dr[0] = i;
    dr[1] = i + 1;
    dt.Rows.Add(dr);
}

this.dtlpaging.DataSource = dt;
this.dtlpaging.DataBind();
this.dtlpaging1.DataSource = dt;
this.dtlpaging1.DataBind();
 }
 #region Private Properties
 private int CurrentPage
{
get
{
    object objPage = ViewState["_CurrentPage"];
    int _CurrentPage = 0;
    if (objPage == null)
    {
        _CurrentPage = 0;
    }
    else
    {
        _CurrentPage = (int)objPage;
    }
    return _CurrentPage;
}
set { ViewState["_CurrentPage"] = value; }
}
private int fistIndex
{
   get
   {

    int _FirstIndex = 0;
    if (ViewState["_FirstIndex"] == null)
    {
        _FirstIndex = 0;
    }
    else
    {
        _FirstIndex = Convert.ToInt32(ViewState["_FirstIndex"]);
    }
    return _FirstIndex;
}
set { ViewState["_FirstIndex"] = value; }
}
 private int lastIndex
  {
    get
{

    int _LastIndex = 0;
    if (ViewState["_LastIndex"] == null)
    {
        _LastIndex = 0;
    }
    else
    {
        _LastIndex = Convert.ToInt32(ViewState["_LastIndex"]);
    }
    return _LastIndex;
}
set { ViewState["_LastIndex"] = value; }
}
#endregion
#region PagedDataSource
PagedDataSource _PageDataSource = new PagedDataSource();
#endregion
 protected void imgbtnfirst_Click(object sender, ImageClickEventArgs e)
{
CurrentPage = 0;
this.databind();
}
protected void imgbtnprevious_Click(object sender, ImageClickEventArgs e)
{
CurrentPage -= 1;
this.databind();
}
protected void dtlpaging_ItemDataBound(object sender, DataListItemEventArgs e)
{
LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
{
    lnkbtnPage.Enabled = false;
    lnkbtnPage.CssClass = "pageing_l_active";
}
}

protected void imgbtnnext_Click(object sender, ImageClickEventArgs e)
{
CurrentPage += 1;
this.databind();
}
protected void imgbtnlast_Click(object sender, ImageClickEventArgs e)
{
CurrentPage = (Convert.ToInt32(this.ViewState["totalpages"]) - 1);
this.databind();
}
protected void dtlpaging_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName.Equals("Paging"))
{
    CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
    this.databind();
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM