2009-11-17 32 views
0

我需要爲數據列表控件進行分頁。我將顯示(6列* 5行)。所以一旦記錄超過它應該去下一頁 任何一個可以給代碼如何實現這一點。因爲我們天璣hvae內置分頁的DataList控件 謝謝如何在數據列表控件中進行分頁

回答

-1

退房DataList控件的RepeatColumns財產,分頁可以用傳統方式完成。 :

DataList1.RepeatColumns = 6; 
DataList1.RepeatDirection = RepeatDirection.Horizontal; 
+0

他需要數據列表分頁不repeatecoloums .. – 2009-11-17 12:38:07

+0

@Muhammad阿赫塔爾:抱歉,你從這一行可以理解:(6列* 5行) – Canavar 2009-11-17 12:40:14

+0

@Canavar,因爲他目前正在顯示(6列* 5行s = 30條記錄),如果記錄超過,他需要分頁 – 2009-11-17 12:43:09

-1

對於Datalist中尋呼使用PagedDataSource,PagedDataSource用於提供尋呼設施如DataList的,中繼器,數據網格,GridView的,的DetailsView和FormView數據綁定控件允許它執行尋呼。 對於示例 創建SQL表

CREATE TABLE [dbo].[tbl_category](
[catid] [int] IDENTITY(1,1) NOT NULL, 
[categoryname] [nvarchar](100) NOT NULL, 

CONSTRAINT [PK_tbl_category] PRIMARY KEY CLUSTERED 
(
[catid] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

Default.aspx頁面包含

<asp:DataList ID="DataList1" runat="server"> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Eval("categoryname") %>'></asp:Label>       

     </ItemTemplate>            
    </asp:DataList> 
    <asp:label id="lblCurrentPage" runat="server"></asp:label> 
<asp:LinkButton ID="lbtnPrev" 
Runat="server" onclick="lbtnPrev_Click">Prev</asp:LinkButton> 

<asp:LinkButton ID="lbtnNext" 
Runat="server" onclick="lbtnNext_Click">Next</asp:LinkButton> 

下一個代碼背後

protected void Page_Load(object sender, EventArgs e) 
{ 
    ItemsGet(); 
} 

    private void ItemsGet() 
{ 

    string qry = "select catid, categoryname from tbl_category"; 
    SqlConnection con = new SqlConnection(a.dbConnection()); 
    SqlDataAdapter da = new SqlDataAdapter(qry, con); 
    DataTable dt = new DataTable(); 
    da.Fill(dt);  
    PagedDataSource pgsrc = new PagedDataSource(); 
    pgsrc.DataSource = dt.DefaultView; 
    pgsrc.AllowPaging = true; 
    pgsrc.PageSize = 3; 
    pgsrc.CurrentPageIndex = CurrentPage;  
    DataList1.DataSource = pgsrc; 
    DataList1.DataBind(); 
    lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of " + pgsrc.PageCount.ToString();  

} 
public int CurrentPage 
{ 
    get 
    { 
     // look for current page in ViewState 
     object o = this.ViewState["_CurrentPage"]; 
     if (o == null) 
      return 0; // default page index of 0 
     else 
      return (int)o; 
    } 

    set 
    { 
     this.ViewState["_CurrentPage"] = value; 
    } 
} 
protected void lbtnPrev_Click(object sender, EventArgs e) 
{ 
    // Set viewstate variable to the previous page 
    CurrentPage -= 1; 
    // Reload control 
    ItemsGet(); 
} 
protected void lbtnNext_Click(object sender, EventArgs e) 
{ 
    // Set viewstate variable to the next page 
    CurrentPage += 1; 
    // Reload control 
    ItemsGet(); 
} 
相關問題