datagird的分页问题!急,解决了立刻给分!谢谢!

flybird079 2003-01-04 02:15:43
在Button_Click()中将datagird绑定到一个dataset上,datagird的内容可以正常显示。但是当翻页刷新后,datagird就消失,不显示任何内容。
在pageindexchange()中已经将datagrid重新进行绑定了啊!为什么不显示呢?
...全文
28 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
webcool 2003-01-05
  • 打赏
  • 举报
回复
我可以给你具体代码!
中间插播广告:)
http://www.ymlove.com/websearch

WebSearch 自定义控件 For ASP.NET
版权所有(C) webcool324@msn.com
http://www.ymlove.com/websearch/

----------------------------
1. 产品说明
WebSearch控件有助于.net程序员开发数据库软件的搜索工作。
在代码中简单的设置相应的数据库字段后,本控件可以自动生成搜索需要的界面,并可以根据搜索界面操作的结果生成相应的SQL条件

语句。
真正让开发人员省时、省心。

----------------------------
srxgs 2003-01-05
  • 打赏
  • 举报
回复
翻页的代码需要重新调用把数据绑定的代码

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

Sub BindGridwx(ByVal ym As Integer)
‘数据连接代码
......
DataGrid1.CurrentPageIndex = ym
DataGrid1.DataBind()
......
End Sub
gage 2003-01-05
  • 打赏
  • 举报
回复
EnableViewState 这个不能关呀
angel_lee 2003-01-05
  • 打赏
  • 举报
回复
agree with jieyh(无影无形)
you should write a BindGrid void first:

private void BindGrid()
{
SqlConnection mysqlConnection = new SqlConnection(ConfigurationSettings.AppSettings["connString"]);
mysqlConnection.Open();
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter("select * from Department", mysqlConnection);

DataSet mydataSet = new DataSet();
sqlDataAdapter1.Fill(mydataSet,"Department");

DataGrid1.DataSource = mydataSet.Tables["Department"].DefaultView;
DataGrid1.DataBind();
}

then write page_index void:

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
sqlDataAdapter1.Fill(mydataSet,"Department");
DataGrid1.CurrentPageIndex = e.NewPageIndex;
DataGrid1.DataBind();
}
flybird079 2003-01-05
  • 打赏
  • 举报
回复
问题解决了,谢谢!
jieyh 2003-01-05
  • 打赏
  • 举报
回复
补充:
为了使数据的一致你可以用Session保存你的dataset,这样你在onclick
中为这个Session赋值,然后传dataset到你的绑定函数中。在翻页绑定时也调用绑定函数并传入Session;
当然也可以用其他方法,如重新查找数据库之类的。。。
jieyh 2003-01-05
  • 打赏
  • 举报
回复
呵呵。。
你是不是把绑定datagrid的函数放在onclick里面了???
如果是这样当然不行了。
因为翻页时会时你要绑顶的数据已经丢失了。
把绑定datagrid给分开,在onclick or PageIndexChanged中都调用绑定函数试试。。
netcar 2003-01-04
  • 打赏
  • 举报
回复
你是怎么绑定到DataSet的?翻页时要计算需显示的记录后重新绑定...
flybird079 2003-01-04
  • 打赏
  • 举报
回复
在补充说明一下我的情况:
其实在点击datagrid中的“下一页”后,的确也实现了datagird的翻页,但是必须要再点击一次“显示数据”Button才能够将翻页后的数据显示出来,这是怎么回事啊?
flybird079 2003-01-04
  • 打赏
  • 举报
回复
to: net_love(孟子E章)
谢谢你的回答!
你的意思我明白。但我的情况是利用datagird的PageIndexChange()事件进行翻页出现了datagrid内容消失的情况
代码:
private void gridMonitor_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.gridMonitor.CurrentPageIndex = e.NewPageIndex;
this.gridMonitor.DataBind();
}

另外,将“显示数据”Button_Click事件的代码放在Page_Load()中可以正常实现翻页和数据显示。

孟子E章 2003-01-04
  • 打赏
  • 举报
回复
注意修改
Dim myConnection As SqlConnection = New SqlConnection("server=mengxianhui;uid=sa;pwd=;database=pubs")
中链接字符串
孟子E章 2003-01-04
  • 打赏
  • 举报
回复
例子
<%@ Page EnableSessionState="False" EnableViewState="True" debug="False" trace="False" strict="False" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script language="VB" runat="server">

Sub Page_Load(sender As Object, e As EventArgs)
BindGrid
End Sub

Sub MyDataGrid_Page(sender As Object, e As DataGridPageChangedEventArgs)
dim startIndex as Integer
startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize
MyDataGrid.CurrentPageIndex = e.NewPageIndex

BindGrid
ShowStats
End Sub

Sub BindGrid()

Dim myConnection As SqlConnection = New SqlConnection("server=mengxianhui;uid=sa;pwd=")
dim ds as DataSet = new DataSet()
dim adapter as SqlDataAdapter = new SqlDataAdapter("Select * from Authors", myConnection)
adapter.Fill(ds,"Authors")

MyDataGrid.DataSource=ds.Tables("Authors").DefaultView
MyDataGrid.DataBind()
ShowStats

End Sub

Sub PagerButtonClick(sender As Object, e As EventArgs)
'used by external paging UI
Dim arg As string = sender.CommandArgument

Select arg
Case "next":
If (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1)) Then
MyDataGrid.CurrentPageIndex += 1
End If
Case "prev":
If (MyDataGrid.CurrentPageIndex > 0) Then
MyDataGrid.CurrentPageIndex -= 1
End If
Case "last":
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1)
Case Else:
'page number
MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg)
End Select
BindGrid
ShowStats
End Sub

Sub ShowStats()
lblCurrentIndex.Text = "CurrentPageIndex is " & MyDataGrid.CurrentPageIndex
lblPageCount.Text = "PageCount is " & MyDataGrid.PageCount
End Sub
</script>
<html>
<head></head>
<body>
<h1 align="center">Paging Certain Number records per page<br /> .NET style using Beta 2!</h1>
<a href="http://aspfree.com/feedback.asp" target="_blank">Feedback, Comments, Questions??</a>
<br />
<blockquote>
<form runat="server">

<ASP:DataGrid id="MyDataGrid" runat="server"
AllowPaging="True"
PageSize="5"
PageCount="1"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
/>
<p>

<asp:LinkButton id="btnFirst" runat="server"
Text="Go to the first page"
CommandArgument="0"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>
 
<asp:LinkButton id="btnPrev" runat="server"
Text="Previous page"
CommandArgument="prev"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>
 
<asp:LinkButton id="btnNext" runat="server"
Text="Next page"
CommandArgument="next"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>
 
<asp:LinkButton id="btnLast" runat="server"
Text="Go to the last page"
CommandArgument="last"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>


<p>

<table bgcolor="#eeeeee" cellpadding="6"><tr><td nowrap><font face="Verdana" size="-2">

<asp:Label id="lblCurrentIndex" runat="server" /><br>
<asp:Label id="lblPageCount" runat="server" /><br>
</form>
</blockquote>
</body>
</html>
flybird079 2003-01-04
  • 打赏
  • 举报
回复
救命啦!高手们!

62,046

社区成员

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

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

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

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