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

datagrid分页 问题 求教

十一文 发布于 2007-09-19 22:19, 1524 次点击
代码 Default.aspx

<%@ Page Inherits="Defaultpage" Src="Default.aspx.cs" %>
<html>
<head runat="server">
<title>新闻系统</title>
</head>
<body>
<center>asp.net新闻系统</center>
<table>
<asp:DataGrid ID="xinwen" runat="server" AllowCustomPaging="true" PagerStyle-NextPageText="下一页"
PagerStyle-PrevPageText="上一页"
PagerStyle-Visible="true" AllowPaging="true" PageSize="20" PagerStyle-Mode="NextPrev" OnPageIndexChanged="ChangePage" AutoGenerateColumns="false" EnableViewState="true">
<HeaderStyle BackColor="#00aaaa"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="D_ID" HeaderText="id"/>
<asp:BoundColumn DataField="D_Title" HeaderText="标题"/>
<asp:BoundColumn DataField="D_Writer" HeaderText="作者"/>
<asp:BoundColumn DataField="D_Date" HeaderText="发布时间"/>
</Columns>
</asp:DataGrid>
</table>
</body>
</html>

代码:Default.aspx.cs;

using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Defaultpage : System.Web.UI.Page
{
public DataGrid xinwen;
DataSet ds = new DataSet();

void xinwenBind() {

string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=e:\work\nxy.mdb";
string strSQL = "SELECT D_ID, D_Title, D_Writer, D_Date FROM NewsData";
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbDataAdapter da = new OleDbDataAdapter(strSQL,objConnection);

da.Fill(ds, "NewsData");
xinwen.DataSource = ds.Tables["NewsData"];
xinwen.DataBind();

}
public void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {

xinwenBind();
}

}
public void ChangePage(Object sender,DataGridPageChangedEventArgs e){
xinwen.CurrentPageIndex = e.NewPageIndex;
xinwen.DataSource = ds.Tables["NewsData"];
xinwen.DataBind();

}
}

可是我的结果是
显示有上一页 下一页
但是没的链接!!!
不知道为什么??

[此贴子已经被作者于2007-9-20 15:17:48编辑过]

25 回复
#2
冰彩虹2007-09-19 22:46

数据没有20条,一页就可以显示了吧

#3
十一文2007-09-20 09:41
有100多条了!!
#4
jxnuwy042007-09-20 09:53
public void ChangePage(Object sender,DataGridPageChangedEventArgs e)这个事件是你自己写的吗?而且你用的是DataGrid自带的分页功能?
#5
梦灵儿2007-09-20 12:29
我给你个视频地址.你看哈.也可以自己写的.可以自己定义自定义控件,也可以使用微软自带的.
ASP.NET2
#6
bygg2007-09-20 12:35
DataGrid不是有自带的分页功能吗??
#7
十一文2007-09-20 14:39

就是用他自代的分页功能啊
!!!

#8
jxnuwy042007-09-20 14:50
写一个自带分页的代码:首先将DataGrid1的AllowPaging设为true;

//数据绑定
protected void DataBind()
{
SqlConnection con=new SqlConnection(@"Data Source=.;Initial Catalog=Northwind;Integreated Security=SSPI");
string strSQL="Select * From Employee";
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand=new SqlCommand(strSQL,con);
DataSet ds=new DataSet();
sda.Fill(ds);

DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}
//接下来就是分页事件了
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
DataBind();
}
这样应该可以的.
#9
十一文2007-09-20 15:14
回复:(jxnuwy04)写一个自带分页的代码:首先将Data...

我有这个
代码差不多啊
!!

可是能够看见有
下一页 的显示
但是链接不上

点他没的反映
#10
jxnuwy042007-09-20 16:03
不可能的,我一直就是这么用的啊!
#11
十一文2007-09-20 23:28
keshi
我弄了就是这样啊
#12
jxnuwy042007-09-20 23:57
你跟踪调试一下看有没有执行这个事件DataGrid1_PageIndexChanged()里的代码,如果还是没反应,那可能是没有注册这个事件.
#13
cyyu_ryh2007-09-21 15:23

大家用过查询分页吗?
感觉有点难,我做了很久还是错。
有谁给点提示?

#14
bygg2007-09-21 15:30

什么查询分页?

#15
catherienxlj2007-09-21 16:42
那个分页事件是不是应该改成PageIndexChanging啊,我用的是gridview,分页功能时就是用这个事件,用CHANGED好像不行
#16
jxnuwy042007-09-21 17:16
恩,GridView是在PageIndexChanging事件中.
#17
十一文2007-09-21 18:33
以下是引用jxnuwy04在2007-9-20 23:57:33的发言:
你跟踪调试一下看有没有执行这个事件DataGrid1_PageIndexChanged()里的代码,如果还是没反应,那可能是没有注册这个事件.

我才开始学。NET
不懂你的意思??
怎么跟踪
我看见这里只有断点功能

#18
jxnuwy042007-09-21 18:48
我的意思是单步调试
先在你觉得有问题的那行代码处设置断点,开始运行,当运行到断点处会变成黄色,单步调试的时候按F11键就可以了
#19
十一文2007-09-21 19:17
o
试是
#20
十一文2007-09-21 19:19
我的OnPageIndexChanged根本就不能触发

根本就不能到那里去

上一页 下一页根本就没的连接

#21
jxnuwy042007-09-21 19:46
那你看一下注册了这个事件不?
#22
十一文2007-09-21 21:23

怎么看这个我也不知道!

怎么弄?

#23
jxnuwy042007-09-21 22:47

搞了这么久还不行,建议你重新添加一个GridView试试看.

#24
十一文2007-09-29 20:07
怎么弄还是请大哥再说清楚点
我才开始弄。NET
怎么连个分野
都弄不好

郁闷了
想了一个星期
还是这样!!
#25
guoxhvip2007-09-29 21:11
是不是事件没有添加啊
#26
skyland842007-10-02 10:48

应该是 动态绑定 数据后 的 自带分页就没有了!

要自己写!

我记得 以前 我遇到的也是这样!

1