注册 登录
编程论坛 ASP.NET技术论坛

大家这里都没谈 asp.net分页问题

accpfriend 发布于 2006-12-31 10:17, 1283 次点击
只有本站会员才能查看附件,请 登录


想问问大家这样的asp.net的分页谁做过,

有源代码最好共享一下,

再说是大家也谈谈asp.net中分页问题

如过千的数据给你, 你如何做到有效的分页,而且是通用的.
12 回复
#2
bygg2006-12-31 14:27

用个GirdView不是就很简单吗?

#3
accpfriend2006-12-31 14:36
GridView那个不能用于大量的数据,
GridView那个不能用于大量的数据,
#4
rainic2006-12-31 14:39
以下是引用bygg在2006-12-31 14:27:24的发言:

用个GirdView不是就很简单吗?

GirdView太傻瓜了
做不出来多样式的分页。。
我不喜欢在前台用。。

#5
YSKING2006-12-31 16:02
以下是引用rainic在2006-12-31 14:39:16的发言:

GirdView太傻瓜了
做不出来多样式的分页。。
我不喜欢在前台用。。

愿闻其详

[此贴子已经被作者于2006-12-31 17:06:23编辑过]

#6
xiaochun6620032007-02-02 15:44

这个datatable最减少系统资源.只返回当前页的数据。

Public Function ExecuteDataTableCommonProc(ByVal tablename As String, ByVal fields As String, ByVal condition As String, ByVal pagesize As Integer, ByVal currentpage As Integer, ByVal orderfield As String, ByVal ordertype As String) As DataTable
Dim textArray1 As String()
Dim text1 As String = ""
If (ordertype Is "Desc") Then
If (condition Is "None") Then
If (currentpage = 1) Then
text1 = String.Concat(New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " Order By ", orderfield, " Desc" })
Else
textArray1 = New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " Where ", orderfield, "<(Select Min(", orderfield, ") From (Select Top ", (pagesize * (currentpage - 1)).ToString, " ", orderfield, " From ", tablename, " Order By ", orderfield, " Desc) Temp) Order By ", orderfield, " Desc" }
text1 = String.Concat(textArray1)
End If
ElseIf (currentpage = 1) Then
text1 = String.Concat(New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " ", condition, " Order By ", orderfield, " Desc" })
Else
textArray1 = New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " ", condition, " And ", orderfield, "<(Select Min(", orderfield, ") From (Select Top ", (pagesize * (currentpage - 1)).ToString, " ", orderfield, " From ", tablename, " ", condition, " Order By ", orderfield, " Desc) Temp) Order By ", orderfield, " Desc" }
text1 = String.Concat(textArray1)
End If
ElseIf (condition Is "None") Then
If (currentpage = 1) Then
text1 = String.Concat(New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " Order By ", orderfield, " Asc" })
Else
textArray1 = New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " Where ", orderfield, ">(Select Max(", orderfield, ") From (Select Top ", (pagesize * (currentpage - 1)).ToString, " ", orderfield, " From ", tablename, " Order By ", orderfield, " Asc) Temp) Order By ", orderfield, " Asc" }
text1 = String.Concat(textArray1)
End If
ElseIf (currentpage = 1) Then
text1 = String.Concat(New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " ", condition, " Order By ", orderfield, " Asc" })
Else
textArray1 = New String() { "Select Top ", pagesize.ToString, " ", fields, " From ", tablename, " ", condition, " And ", orderfield, ">(Select Max(", orderfield, ") From (Select Top ", (pagesize * (currentpage - 1)).ToString, " ", orderfield, " From ", tablename, " ", condition, " Order By ", orderfield, " Asc) Temp) Order By ", orderfield, " Asc" }
text1 = String.Concat(textArray1)
End If
Return Me.ExecuteDataTable(text1)
End Function

#7
xiaochun6620032007-02-02 15:46

生成分页导航

Public Shared Function GetPage(ByVal QueryString As String, ByVal Count As Integer, ByVal PageSize As Integer, ByVal CurrentPage As Integer, ByVal SizePerPage As Integer, ByVal StylePath As String) As String
Dim num1 As Integer
Dim num2 As Integer
If ((Count Mod PageSize) = 0) Then
num2 = Convert.ToInt32(CInt((Count / PageSize)))
Else
num2 = (Convert.ToInt32(CInt((Count / PageSize))) + 1)
End If
If (Not QueryString.Trim Is String.Empty) Then
QueryString = (QueryString & "&")
End If
If (num2 <= 0) Then
num2 = 1
End If
If (CurrentPage > num2) Then
CurrentPage = num2
End If
Dim builder1 As New StringBuilder
builder1.Append("<table class=Pager_Table cellspacing=1 cellpadding=0><tr>")
builder1.Append(String.Concat(New String() { "<td class=Pager_ColorTD>", Count.ToString, "</td><td class=Pager_ColorTD>", CurrentPage.ToString, "/", num2.ToString, "</td>" }))
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=1><img src=", StylePath, "/dot_left-01.gif alt=" & ChrW(39318) & ChrW(39029) & " border=0/></a></td>" }))
If (num2 > SizePerPage) Then
Dim textArray1 As String()
If (CurrentPage > (SizePerPage / 2)) Then
If (CurrentPage > (num2 - (SizePerPage / 2))) Then
textArray1 = New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", (CurrentPage - SizePerPage).ToString, "><img src=", StylePath, "/dot_left.gif alt=" & ChrW(19978) & "10" & ChrW(39029) & " border=0/></a></td>" }
builder1.Append(String.Concat(textArray1))
num1 = (num2 - SizePerPage)
Do While (num1 <= num2)
If (num1 = CurrentPage) Then
builder1.Append(("<td class=Pager_TD><a href=# class=Red_Link>" & num1.ToString & "</a></td>"))
Else
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", num1.ToString, ">", num1.ToString, "</a></td>" }))
End If
num1 += 1
Loop
Else
textArray1 = New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", (CurrentPage - SizePerPage).ToString, "><img src=", StylePath, "/dot_left.gif alt=" & ChrW(19978) & "10" & ChrW(39029) & " border=0/></a></td>" }
builder1.Append(String.Concat(textArray1))
num1 = (CurrentPage - (SizePerPage / 2))
Do While (num1 <= (CurrentPage + (SizePerPage / 2)))
If (num1 = CurrentPage) Then
builder1.Append(("<td class=Pager_TD><a href=# class=Red_Link>" & num1.ToString & "</a></td>"))
Else
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", num1.ToString, ">", num1.ToString, "</a></td>" }))
End If
num1 += 1
Loop
textArray1 = New String(7 - 1) {}
textArray1(0) = "<td class=Pager_TD><a href=?"
textArray1(1) = QueryString
textArray1(2) = "Page="
textArray1(3) = (CurrentPage + SizePerPage).ToString
textArray1(4) = "><img src="
textArray1(5) = StylePath
textArray1(6) = "/dot_right.gif alt=" & ChrW(19979) & "10" & ChrW(39029) & " border=0/></a></td>"
builder1.Append(String.Concat(textArray1))
End If
Else
num1 = 1
Do While (num1 <= SizePerPage)
If (num1 = CurrentPage) Then
builder1.Append(("<td class=Pager_TD><a href=# class=Red_Link>" & num1.ToString & "</a></td>"))
Else
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", num1.ToString, ">", num1.ToString, "</a></td>" }))
End If
num1 += 1
Loop
textArray1 = New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", (CurrentPage + SizePerPage).ToString, "><img src=", StylePath, "/dot_right.gif alt=" & ChrW(19979) & "10" & ChrW(39029) & " border=0/></a></td>" }
builder1.Append(String.Concat(textArray1))
End If
Else
num1 = 1
Do While (num1 <= num2)
If (num1 = CurrentPage) Then
builder1.Append(("<td class=Pager_TD><a href=# class=Red_Link>" & num1.ToString & "</a></td>"))
Else
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", num1.ToString, ">", num1.ToString, "</a></td>" }))
End If
num1 += 1
Loop
End If
builder1.Append(String.Concat(New String() { "<td class=Pager_TD><a href=?", QueryString, "Page=", num2.ToString, "><img src=", StylePath, "/dot_right-01.gif alt=" & ChrW(23614) & ChrW(39029) & " border=0/></a></td></tr></table>" }))
Return builder1.ToString
End Function


#8
hoya2007-02-03 09:34
不想这么麻烦就网上搞个.--aspnetpage
#9
dawei3222007-02-04 10:38
偶曰:"6楼的你敢去vb.net版块发你那东西么??"
又曰:"7楼的你敢写C#语言的代码么??"
#10
lhq222007-06-02 21:51
我想要完整的分页显示数据记录的分页源码!!那位大虾可以献出一份给我!!
#11
lhq222007-06-02 21:52

我也想一份像楼主要的那样的分页效果代码!

#12
ahuinan2007-06-03 18:45
分页不是N年前就讨论过了吗?

http://www.sosuo8.com/article/show.asp?id=825

自己看吧!什么样式都能实现
#13
powerPHP2007-06-04 19:28
楼上厚道
1