【问题标题】:How to add paging in datalist如何在datalist中添加分页
【发布时间】:2017-04-04 17:49:53
【问题描述】:

您好,我已经为数据列表实现了分页,但它没有显示正确的分页。

您可以在此图像中看到输出,它没有正确显示输出,我需要的输出是 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>

/////////////////////////////////////////////////////////////////////////////////////////

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();
}

【问题讨论】:

    标签: c# asp.net datalist


    【解决方案1】:
    _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();
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      相关资源
      最近更新 更多