Hvordan til brug paging med kontrol i Repeater ASP.NET?

<asp:Repeater ID="RepCourse" runat="server">

  <ItemTemplate>

    <div style="width:400px"></div>

    <div class="course" style="float: left; margin-left: 100px; margin-top: 100px">

      <div class="image">
        <asp:Image ID="imgteacher" runat="server" Height="150" Width="248" ImageUrl='<%# "ShowImage.ashx?id="+ DataBinder.Eval(Container.DataItem, "CourseID") %>'/>
      </div>

      <div style="margin-left: 3px; width: 250px">
        <div class="name">
          <a href="#"><asp:Label runat="server" ID="lblname" Text='<%#Eval("CourseName") %>'></asp:Label></a>
        </div>
        <div style="height: 13px"></div>
        <div id="teacher">
          <a href="#"><%#Eval("UserName") %> </a>
        </div>
      </div>

      <div style="height: 4px"></div>

      <div class="date">
        <div id="datebegin">
          <asp:Label ID="lbldatebegin" runat="server" Text='<%#Eval("BeginDate") %>'></asp:Label>
        </div>
        <div id="dateend">
          <asp:Label ID="lbldateend" runat="server" Text='<%#Eval("ClosingDate") %>'></asp:Label>
        </div>
      </div>

    </div>

  </ItemTemplate>

</asp:Repeater>

I mit projekt Repeater Control virker fint. Og nu har jeg brug for paginering for udskiftning af disse data. Men jeg har ikke nogen oplysninger om dette. Kan nogen give mig råd om dette emne.

Som vist nedenstående billede.

Hvordan til brug paging med kontrol i Repeater ASP.NET?

måske dette vil hjælpe dig med at: aspsnippets.com/Articles/…

OriginalForfatteren Jeyhun | 2014-04-07

1 svar

  1. 21

    Der er ingen indbygget paginering i Repeater kontrol, men baseret på dette artikel, kan du opnå paginering i Repeater-kontrol ved at oprette en anden Repeater kontrol for sider og bruge PagedDataSource som det er kilde.

    Første skal du tilføje dette til din markering:

    <div style="overflow: hidden;">
    
    <asp:Repeater ID="rptPaging" runat="server" OnItemCommand="rptPaging_ItemCommand">
     <ItemTemplate>
      <asp:LinkButton ID="btnPage"
       style="padding:8px;margin:2px;background:#ffa100;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>
    
    </div>

    Næste, skal du tilføje følgende i din kode bag:

    //This property will contain the current page number 
    public int PageNumber
    {
        get
        {
            if (ViewState["PageNumber"] != null)
            {
                return Convert.ToInt32(ViewState["PageNumber"]);
            }
            else
            {
                return 0;
            }
        }
        set { ViewState["PageNumber"] = value; }
    }

    Endelig tilføje følgende metoder:

    protected void Page_Load(object sender, EventArgs e)
    {
        BindRepeater();
    }
    
    private void BindRepeater()
    {
        //Do your database connection stuff and get your data
        SqlConnection cn = new SqlConnection(yourConnectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = cn;
        SqlDataAdapter ad = new SqlDataAdapter(cmd);
        cmd.CommandText = "Select * from YourTable";
    
        //save the result in data table
        DataTable dt = new DataTable();
        ad.SelectCommand = cmd;
        ad.Fill(dt);
    
        //Create the PagedDataSource that will be used in paging
        PagedDataSource pgitems = new PagedDataSource();
        pgitems.DataSource = dt.DefaultView;
        pgitems.AllowPaging = true;
    
        //Control page size from here 
        pgitems.PageSize = 4;
        pgitems.CurrentPageIndex = PageNumber;
        if (pgitems.PageCount > 1)
        {
            rptPaging.Visible = true;
            ArrayList pages = new ArrayList();
            for (int i = 0; i <= pgitems.PageCount - 1; i++)
            {
                pages.Add((i + 1).ToString());
            }
            rptPaging.DataSource = pages;
            rptPaging.DataBind();
        }
        else
        {
            rptPaging.Visible = false;
        }
    
        //Finally, set the datasource of the repeater
        RepCourse.DataSource = pgitems;
        RepCourse.DataBind();
    }
    
    //This method will fire when clicking on the page no link from the pager repeater
    protected void rptPaging_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
    {
        PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
        BindRepeater();
    }

    Giv det en chance, og hvis du står over for noget problem, bare informere mig.

    Edit: Alternativ Løsning

    En anden fremragende løsning kan findes Her, denne løsning omfatter navigationsknapperne sider. Du bliver nødt til at downloade filer fra dette link for at se en funktionel paginering og bare udskifte DataList kontrol med din Repeater kontrol.

    Håber, at dette hjælper.

    OriginalForfatteren Black Baron

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *