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


调试半天也不明白,可能还是有那里不清楚了,,,请高手们解答一下,多谢了
...全文
195 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
搂主发话:---
发现个小问题

我的数据库中有个字段设为自动增长的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 是不是你的数据库只有 一页的数据呀?
回复
我已经该了,可是还是没有变化,在datagrid下面还是只有一个数字,就是1,其它的呢????
回复
lsx_66 2006-06-08
在每次翻页前,都要有 datagridbind() 发生。
回复
lsx_66 2006-06-08

If Not IsPostBack Then

datagridbind()

End If

datagridbind()应该放在 End IF 后面。
回复
000000.自己冒几个泡泡.....
回复
肯定不是自己和别人删除的,这个自动增长id怎么丢失数据了?1.2.就4了
回复
fafenglea 2006-06-08
属性生成器里的分页的允许分页有选吗?似乎没有
AllowPaging="True"
回复
fafenglea 2006-06-08
肯定是你自己delete了
回复
id数据怎么就没了呢??我就一个,没人帮帮我吗?
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2006-06-08 10:25
社区公告
暂无公告