【问题标题】:Repeater Paging中继器寻呼
【发布时间】:2011-02-22 08:21:08
【问题描述】:

我正在使用以下代码在转发器内进行分页。我将分页大小设置为 3。如果正好有 3 个气泡 - 显示下一个按钮,当我选择时,我被重定向到一个空白页面。但是,如果有 4 个语音气泡,一切都很好。有没有办法确保如果页面大小为 3 - 不显示按钮?谢谢!

    PagedDataSource pagedData = new PagedDataSource();
    pagedData.DataSource = ds.Tables[0].DefaultView;
    pagedData.AllowPaging = true;
    pagedData.PageSize = 3;
    pagedData.CurrentPageIndex = pageNum;

    Repeater1.DataSource = pagedData;
    Repeater1.DataBind();

    cmd.Connection.Close();
    cmd.Connection.Dispose();

    if (pageNum == 0)
    {

        btnPrev.Visible = false;

    }
    if (pageNum >= Math.Floor((decimal)ds.Tables[0].Rows.Count / 3))
    {

        btnNext.Visible = false;
    }

}

protected void btnNext_Click(object sender, EventArgs e)
{
    // Redirects to next page
    Response.Redirect("negativestorydetail.aspx?guid=" + id + "&name=" + name + "&role=" + company_role + "&member=" + mem_id + "&company=" + co_id + "&project=" + proj_name + "&proj_id=" + proj_id + "&tag=" + tag + "&page=" + Convert.ToString(pageNum + 1));
}
protected void btnPrev_Click(object sender, EventArgs e)
{
    // Redirects to previous page
    Response.Redirect("negativestorydetail.aspx?guid=" + id + "&name=" + name + "&role=" + company_role + "&member=" + mem_id + "&company=" + co_id + "&project=" + proj_name + "&proj_id=" + proj_id + "&tag=" + tag + "&page=" + Convert.ToString(pageNum - 1));
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    这个条件不太行:

    if (pageNum >= Math.Floor((decimal)ds.Tables[0].Rows.Count / 3))
    {
        btnNext.Visible = false;
    }
    

    在 3 个结果(或通常 N x 页面大小的结果)的情况下,它无法正常工作。相反,它应该是:

    if (pageNum >=  Math.Ceiling((decimal)(ds.Tables[0].Rows.Count / 3)) -1)
    {
        btnNext.Visible = false;
    }
    

    (-1 考虑从零开始的页码而不是一)

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      相关资源
      最近更新 更多