Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
Node is saved as draft in My Content >> Draft
  • Paging in Repeaters

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 305
    Comment on it

    For implementing paging in Repeaters we will first create a stored procedure in which we will define the row number for every record and this will allow to iterate the records into the temp table and the page size which will define the upper bound

     

    CREATE PROCEDURE GetCustomersPageWise
          @PageIndex INT = 1
          ,@PageSize INT = 10
          ,@RecordCount INT OUTPUT
    AS
    BEGIN
          SET NOCOUNT ON;
          SELECT ROWNUMBER() OVER
          (
                ORDER BY [CustomerID] ASC
          )AS RowNumber
          ,[CustomerID]
          ,[CompanyName]
          ,[ContactName]
         INTO #Results
          FROM [Customers]
    
          SELECT @RecordCount = COUNT(*)
          FROM #Results
    
          SELECT * FROM #Results
          WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    
          DROP TABLE #Results
    

     

    This will be my HTML part. Here we will bind the values defined inside stored procedure for paging

     

    <table class="Repeater" cellspacing="0" rules="all" border="1">
        <tr>
            <th scope="col" style="width: 80px">
                Customer Id
            </th>
            <th scope="col" style="width: 150px">
                Customer Name
            </th>
            <th scope="col" style="width: 150px">
                Company Name
            </th>
        </tr>
        <asp:Repeater ID="rptCustomers" runat="server">
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:Label ID="lblCustomerId" runat="server" Text='<%# Eval("CustomerId") %>' />
                    </td>
                    <td>
                        <asp:Label ID="lblContactName" runat="server" Text='<%# Eval("ContactName") %>' />
                    </td>
                    <td>
                        <asp:Label ID="lblCompanyName" runat="server" Text='<%# Eval("CompanyName") %>' />
                    </td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
    
    
    
    <asp:Repeater ID="rptPager" runat="server">
        <ItemTemplate>
            <asp:LinkButton ID="lnkPage" runat="server" Text='<%#Eval("Text") %>' CommandArgument='<%# Eval("Value") %>'
                CssClass='<%# Convert.ToBoolean(Eval("Enabled")) ? "pageenabled" : "pagedisabled" %>'
                OnClick="PageChanged" OnClientClick='<%# !Convert.ToBoolean(Eval("Enabled")) ? "return false;" : "" %>'></asp:LinkButton>
       </ItemTemplate>
    </asp:Repeater>
    

     

    We also have CSS class for page enabled and page disabled This will be our code :

    private int PageSize = 10;
    protected void PageLoad(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.GetCustomersPageWise(1);
        }
    }
    
    private void GetCustomersPageWise(int pageIndex)
    {
        string constring = ConfigurationManager.ConnectionStrings["constring"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constring))
        {
            using (SqlCommand cmd = new SqlCommand("GetCustomersPageWise", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
                cmd.Parameters.AddWithValue("@PageSize", PageSize);
                cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4);
                cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
                con.Open();
                IDataReader idr = cmd.ExecuteReader();
                rptCustomers.DataSource = idr;
                rptCustomers.DataBind();
                idr.Close();
                con.Close();
                int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
                this.PopulatePager(recordCount, pageIndex);
            }
        }
    }
    
    .net

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: