对PagedDataSource中的项进行计数

本文关键字:PagedDataSource | 更新日期: 2023-09-27 18:21:27

我正试图使分页项目计数器类似于_项目的__,如21项目的1-6和21项目的6-12。有人能教我怎么做吗??

private void BindResourcesRepater()
        {
            string tag = Request.QueryString["tag"];
            if (String.IsNullOrEmpty(tag))
            {
                //Guid userID = Guid.Parse(Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey.ToString());
                DataSet ds = new DataSet();
                int selectedTopicID = Convert.ToInt32(ddlTopics.SelectedValue);
                int selectedSkillID = Convert.ToInt32(ddlSkills.SelectedValue);
                int selectedTypeID = Convert.ToInt32(ddlTypes.SelectedValue);
                string keyword = txtbKeyword.Text.Trim();
                int sortBy = Convert.ToInt32(ddlSortBy.SelectedValue);
                ds = Resource.Search_Resource(selectedTopicID, selectedSkillID, selectedTypeID, keyword, sortBy);


                PagedDataSource objPds = new PagedDataSource();
                objPds.DataSource = ds.Tables[0].DefaultView;
                objPds.AllowPaging = true;
                objPds.PageSize = 6;

                int curpage;
                if (ViewState["Page"] != null)
                {
                    curpage = Convert.ToInt32(ViewState["Page"]);
                }
                else
                {
                    ViewState["Page"] = 1;
                    curpage = 1;
                }
                // Set the currentindex
                objPds.CurrentPageIndex = curpage - 1;
                // Display the current page
                // lblCurrentPage.Text = "Page: " + (curpage).ToString() + " of " + objPds.PageCount.ToString();
                rp_resList.DataSource = objPds;
                rp_resList.DataBind();
                if (rp_resList.Items.Count == 0)
                {
                    lnkNext.Visible = false;
                    if (Convert.ToInt32(ViewState["Page"]) == 1)
                    {
                        lnkPrev.Visible = false;
                    }
                    else
                    {
                        lnkNext.Visible = false;
                    }
                }

                else
                {
                    lnkNext.Visible = true;
                    if (rp_resList.Items.Count < objPds.PageSize)
                    {
                        lnkNext.Visible = false;
                    }
                    if (Convert.ToInt32(ViewState["Page"]) == 1)
                    {
                        lnkPrev.Visible = false;
                    }
                    else
                    {
                        lnkPrev.Visible = true;
                    }
                }

            }
            else
            {
                DataSet ds = new DataSet();
                int selectedTopicID = Convert.ToInt32(ddlTopics.SelectedValue);
                int selectedSkillID = Convert.ToInt32(ddlSkills.SelectedValue);
                int selectedTypeID = Convert.ToInt32(ddlTypes.SelectedValue);
                txtbKeyword.Text = tag;
                string keyword = tag.ToString();
                int sortBy = Convert.ToInt32(ddlSortBy.SelectedValue);
                ds = Resource.Search_Resource(selectedTopicID, selectedSkillID, selectedTypeID, tag, sortBy);
                lbl_totalResult.Text = ds.Tables[0].Rows.Count.ToString() + " " + "Resources Found";
                rp_resList.DataSource = ds.Tables[0];
                rp_resList.DataBind();
            }
    }

对PagedDataSource中的项进行计数

试试这个:

private void BindResourcesRepater()
{
    // your existing code...
    int numberOfItems = ds.Tables[0].Rows.Count;
    lblCurrentVisibleItems.Text = GetCurrentVisibleItemsText(numberOfItems, objPds.PageSize, objPds.CurrentPageIndex);
}
private string GetCurrentVisibleItemsText(int numberOfItems, int pageSize, int currentPageIndex)
{
    int startVisibleItems = currentPageIndex * pageSize + 1;
    int endVisibleItems = Math.Min((currentPageIndex + 1) * pageSize, numberOfItems);
    return string.Format("Displaying {0}-{1} of {2} items", startVisibleItems, endVisibleItems, numberOfItems);
}

我不确定你想在哪个标签中显示这个,但在我的例子中,我使用了一个名为lblCurrentVisibleItems的标签。将其替换为要使用的任何标签。