datagrid用户自定义分页问题?为什么只显示了第一页的数字 页导航,其它的怎么没有显示了?在线等待中....

iceblue2005gather 2006-06-08 10:25:10
我使用的是datagrid的用户自定义的分页功能,前后台代码如下:那位好心人看看问题在哪?我的数据库中的数据明明大于的我的分页数,可datagrid就只显示第一页的数字导航,其它的没有了,我把每页的数目调小,可还是只显示第一页的数字,。。。。

html:datagrid属性的设置:
<asp:datagrid id="DataGrid1" runat="server" cellpadding="3" PagerStyle-Mode="NumericPages" pagesize="4" allowcustompaging="True" allowpaging="True" showfooter="True" AutoGenerateColumns="False" ToolTip="会员注册信息"
Width="752px" >
<PagerStyle Height="5px" BackColor="#CCFFCC" Mode="NumericPages"></PagerStyle>


后台的代码:

Dim strconn As String = System.Configuration.ConfigurationSettings.AppSettings("strconn")
Dim strselect As String
Dim intstartindex As Integer = 0
Dim intendindex As Integer
Dim sqlconn As SqlConnection

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim cmd As SqlCommand
sqlconn = New SqlConnection(strconn)

If Not IsPostBack Then
'取得完整的页,跟踪得数据库中数据项数大于页数,说明至少应该有2出现
strselect = "select count(*) from tabcustomerinfo" '
cmd = New SqlCommand(strselect, sqlconn)
sqlconn.Open()
'在其中grid中导航的页数

---------〉〉〉〉〉就是这里,我把DataGrid1.VirtualItemCount设为固定的数字3,可是还是没显示其它的数字。。。。它不就是显示datagrid的页数导航的马???????
DataGrid1.VirtualItemCount = (cmd.ExecuteScalar / DataGrid1.PageSize) + 1

Label1.Text = "会员总数为:" + CType(cmd.ExecuteScalar, String)

sqlconn.Close()
datagridbind()

End If
End Sub

Sub datagridbind()
intendindex = intstartindex + DataGrid1.PageSize
strselect = "select id,name,truename,email,mobile,phone,jobstyle,state from tabcustomerinfo where id>@startindex and id<=@endindex order by id "
Dim sqladapt As New SqlDataAdapter(strselect, sqlconn)

sqladapt.SelectCommand.Parameters.Add("@startindex", intstartindex)
sqladapt.SelectCommand.Parameters.Add("@endindex", intendindex)
Dim dst As New DataSet
sqladapt.Fill(dst)
DataGrid1.DataSource = dst
DataGrid1.DataBind()

End Sub

Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
intstartindex = (e.NewPageIndex * DataGrid1.PageSize)

DataGrid1.CurrentPageIndex = e.NewPageIndex
datagridbind()
End Sub

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
If e.CommandName = "email" Then
Dim lnk As LinkButton
lnk = e.Item.Cells(8).Controls(0)
Session("email") = lnk.Text + ";" + Session("email")
End If
Label2.Text = "您选择的邮箱如下--" + Session("email")
End Sub


调试半天也不明白,可能还是有那里不清楚了,,,请高手们解答一下,多谢了
...全文
238 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
iceblue2005gather 2006-06-08
  • 打赏
  • 举报
回复
搂主发话:---
发现个小问题

我的数据库中有个字段设为自动增长的id,可是为什么中间有数据没有了?它不是按循序增长的吗?要是数据库没插入成功,它也应该会提示错误啊?怎么会丢数据了???比如1,2,然后就是4了,3的序列就没了。。。

to————lazyfish,谢谢你,解决上面的小问题等会揭帖放分报答。。。
lazyfish 2006-06-08
  • 打赏
  • 举报
回复
DataGrid1.VirtualItemCount = (cmd.ExecuteScalar / DataGrid1.PageSize) + 1

>>>>修改为:

DataGrid1.VirtualItemCount = Convert.ToInt32(cmd.ExecuteScalar);
waxln 2006-06-08
  • 打赏
  • 举报
回复
1 是不是你的数据库只有 一页的数据呀?
iceblue2005gather 2006-06-08
  • 打赏
  • 举报
回复
我已经该了,可是还是没有变化,在datagrid下面还是只有一个数字,就是1,其它的呢????
lsx_66 2006-06-08
  • 打赏
  • 举报
回复
在每次翻页前,都要有 datagridbind() 发生。
lsx_66 2006-06-08
  • 打赏
  • 举报
回复

If Not IsPostBack Then

datagridbind()

End If

datagridbind()应该放在 End IF 后面。
iceblue2005gather 2006-06-08
  • 打赏
  • 举报
回复
000000.自己冒几个泡泡.....
iceblue2005gather 2006-06-08
  • 打赏
  • 举报
回复
肯定不是自己和别人删除的,这个自动增长id怎么丢失数据了?1.2.就4了
fafenglea 2006-06-08
  • 打赏
  • 举报
回复
属性生成器里的分页的允许分页有选吗?似乎没有
AllowPaging="True"
fafenglea 2006-06-08
  • 打赏
  • 举报
回复
肯定是你自己delete了
iceblue2005gather 2006-06-08
  • 打赏
  • 举报
回复
id数据怎么就没了呢??我就一个,没人帮帮我吗?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧