DataGrid分页问题

flyeagle13 2006-05-16 09:13:35
//绑定表
Function mydatabind()
Dim con As SqlConnection = DB.con()
Dim MyAdapter As SqlDataAdapter = New SqlDataAdapter
Dim ds As New DataSet
MyAdapter.SelectCommand = New SqlCommand("Select * From clerk where sex='男'", con)
MyAdapter.Fill(ds, "clerk")
'将数据绑定到DataGrid
DataGrid1.DataSource = ds
DataGrid1.DataBind()
End Function

//PageIndexChanged方法
Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged

Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
Me.mydatabind()
End Sub


运行后,单击下一页出错

“无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount”

...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyeagle13 2006-05-17
  • 打赏
  • 举报
回复
这样吧,我把我的代码贴出来,有心人帮忙看看啊,谢谢!
页面初始化里绑定两个DropDownList的Text属性作出查询的条件,单击btnsearch按钮,按条件查询并在DATAGRID中显示出来。(问题是此DATAGRID不能实现分页功能)

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

If Not IsPostBack Then
Dim conn As SqlConnection = DB.con()
Dim myAdapter1 As New SqlDataAdapter("select ID from [clerk]", conn)
Dim myAdapter2 As New SqlDataAdapter("select depname from [department]", conn)
conn.Open()
Dim dataSet1 As New DataSet
Dim dataSet2 As New DataSet
myAdapter1.Fill(dataSet1, "clerk")
myAdapter2.Fill(dataSet2, "department")
conn.Close()
DropDownList1.DataSource = dataSet1.Tables("clerk").DefaultView
DropDownList1.DataTextField = "ID" 'dropdownlist的Text的字段
DropDownList1.DataBind()
DropDownList2.DataSource = dataSet2.Tables("department").DefaultView
DropDownList2.DataTextField = "depname"
DropDownList2.DataBind()
End If

End Sub
Dim a, b, c As String

Private Sub btnsearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsearch.Click
If chkname.Checked Then
a = txtname.Text
Else : a = "%"
End If
If chkid.Checked Then
b = DropDownList1.SelectedItem.Text
Else : b = "%"
End If
If chkdepname.Checked Then
c = DropDownList2.SelectedItem.Text
Else : c = "%"
End If
mydatabind()
End Sub

Function mydatabind()
Dim MyAdapter As SqlDataAdapter = New SqlDataAdapter
Dim ds As New DataSet
Dim con As SqlConnection = DB.con()
MyAdapter.SelectCommand = New SqlCommand("Select * From clerk where name like '" & a & "' and ID like '" & b & "' and depname like '" & c & "'", con)
MyAdapter.Fill(ds, "clerk")
DataGrid1.DataSource = ds
DataGrid1.DataBind()
End Function

Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
Me.DataGrid1.CurrentPageIndex = e.NewPageIndex
Me.mydatabind()
End Sub

pengchao_214 2006-05-17
  • 打赏
  • 举报
回复
isPostback用了吗?????
flyeagle13 2006-05-17
  • 打赏
  • 举报
回复
我在page_load里没有绑定,而是单击某个按钮时,才实现的绑定/
kamson_cn 2006-05-16
  • 打赏
  • 举报
回复
而且在page_load里的绑定数据要放在if(!ispostback)中.
yqwaxyq 2006-05-16
  • 打赏
  • 举报
回复
private void dropdownlist1_SelectedIndexChanged(object sender, System.EventArgs e)
{
datagrid1.CurrentPageIndex=0;(加这一句)
Bind();
}
vfan2010 2006-05-16
  • 打赏
  • 举报
回复
是不是没有数据呢?
mingwj1980 2006-05-16
  • 打赏
  • 举报
回复
一页都没有,当然出错了

62,041

社区成员

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

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

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

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