Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 中继器中的自定义分页_C#_Asp.net_Sorting_Repeater - Fatal编程技术网

C# 中继器中的自定义分页

C# 中继器中的自定义分页,c#,asp.net,sorting,repeater,C#,Asp.net,Sorting,Repeater,我正在尝试在中继器中应用自定义分页,它可以工作。但当只有两三条记录时,它会在底部显示数字 我想要的是,当至少有8到10条记录时,数字应该显示在底部,比如1,2,3..在我用红色方块表示的图像中。。。。这是图片。 代码如下: protected void BindRepeater() { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mydms"].ConnectionStrin

我正在尝试在中继器中应用自定义分页,它可以工作。但当只有两三条记录时,它会在底部显示数字

我想要的是,当至少有8到10条记录时,数字应该显示在底部,比如1,2,3..在我用红色方块表示的图像中。。。。这是图片。

代码如下:

protected void BindRepeater()
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mydms"].ConnectionString.ToString());
    SqlCommand cmd = new SqlCommand("sphrdoc2", con);

    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@UserID", Convert.ToInt32(Session["UserID"]));

    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }
    DataTable dt = new DataTable();
    SqlDataAdapter adp = new SqlDataAdapter(cmd);
    adp.Fill(dt);
    PagedDataSource pgitems = new PagedDataSource();
    DataView dv = new DataView(dt);
    pgitems.DataSource = dv;
    pgitems.AllowPaging = true;
    pgitems.PageSize = 2;
    pgitems.CurrentPageIndex = PageNumber;
    if (pgitems.PageCount > 1)
    {
        rptPaging.Visible = true;
        ArrayList pages = new ArrayList();
        for (int i = 0; i < pgitems.PageCount; i++)
            pages.Add((i + 1).ToString());
        rptPaging.DataSource = pages;
        rptPaging.DataBind();
    }
    else
    {
        rptPaging.Visible = false;
    }
    Repeater1.DataSource = pgitems;
    Repeater1.DataBind();
}

public int PageNumber
{
    get
    {
        if (ViewState["PageNumber"] != null)
            return Convert.ToInt32(ViewState["PageNumber"]);
        else
            return 0;
    }
    set
    {
        ViewState["PageNumber"] = value;
    }
}
protected void rptPaging_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
    BindRepeater();
}
受保护的void BindRepeater()
{
SqlConnection con=newsqlconnection(ConfigurationManager.ConnectionStrings[“mydms”].ConnectionString.ToString());
SqlCommand cmd=新的SqlCommand(“sphrdoc2”,con);
cmd.CommandType=CommandType.storedProcess;
cmd.Parameters.AddWithValue(“@UserID”,Convert.ToInt32(会话[“UserID]”));
if(con.State==ConnectionState.Closed)
{
con.Open();
}
DataTable dt=新的DataTable();
SqlDataAdapter adp=新的SqlDataAdapter(cmd);
自动进料(dt);
PagedDataSource pgitems=新的PagedDataSource();
数据视图dv=新数据视图(dt);
pgitems.DataSource=dv;
pgitems.allowpage=true;
pgitems.PageSize=2;
pgitems.CurrentPageIndex=页码;
如果(pgitems.PageCount>1)
{
rptpage.Visible=true;
ArrayList pages=新建ArrayList();
对于(int i=0;i
这是html

<asp:Repeater ID="rptPaging" runat="server" onitemcommand="rptPaging_ItemCommand">
    <ItemTemplate>
        <asp:LinkButton ID="btnPage" style="padding:8px; margin:2px; background:#20B2AA; border:solid 1px #666; font:8pt tahoma;" CommandName="Page" CommandArgument="<%# Container.DataItem %>" runat="server" ForeColor="White" Font-Bold="True"><%# Container.DataItem %>
        </asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>

在数据视图中添加条件检查行数计数

        DataView dv = new DataView(dt);
        if{dv.Table.Rows.Count > 10)
        {
             PagedDataSource pgitems = new PagedDataSource();
             pgitems.DataSource = dv;
             pgitems.AllowPaging = true;
             pgitems.PageSize = 2;
             pgitems.CurrentPageIndex = PageNumber;               
             rptPaging.Visible = true;
             ArrayList pages = new ArrayList();
             for (int i = 0; i < pgitems.PageCount; i++)
                   pages.Add((i + 1).ToString());
             rptPaging.DataSource = pages;
             rptPaging.DataBind();


        }
        else
        {
            rptPaging.Visible = false;
        }
DataView dv=newdataview(dt);
如果{dv.Table.Rows.Count>10)
{
PagedDataSource pgitems=新的PagedDataSource();
pgitems.DataSource=dv;
pgitems.allowpage=true;
pgitems.PageSize=2;
pgitems.CurrentPageIndex=页码;
rptpage.Visible=true;
ArrayList pages=新建ArrayList();
对于(int i=0;i
当我这样做时,…rptPaging.DataSource=pages;rptPaging.DataBind();}else{rptPaging.Visible=false;}Repeater1.DataSource=pgitems;Repeater1.DataBind();}然后显示错误“当前上下文中不存在pgitems将pgitems初始化从if循环移动到数据视图(dv)声明旁边