一个关于分页的小问题,高分请教!着急啊!!!

hlong001 2005-11-21 11:39:33
我用的dataGrid控件,用的内置的默认导航按钮的分页模式
可我运行时 点下一页时 页面显示为空了
我的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
where = "Colid="+Request.QueryString["cid"];
if (!IsPostBack)
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}


private void MyConnection(string MySql)
{
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();

OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");

DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}

非常简单的代码 应该没什么错啊 我用的是access数据库 我打开首页 第一页的数据能显示
请教阿!!!!
...全文
151 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
纷享刘晨 2005-11-21
  • 打赏
  • 举报
回复
1、conn打开了,在最后要关闭掉
2、每次都new一个conn,不知道是不是这的问题

DataGrid的分页应该是假份页吧,每次取出全部结果集,然后返回一部分
goody9807 2005-11-21
  • 打赏
  • 举报
回复
Try:

private void DataGrid1_PageIndexChanged(object source,
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
MyConnection("Select * from CommInfo");
}
wang790809 2005-11-21
  • 打赏
  • 举报
回复
把所有代码帖出来
活靶子哥哥 2005-11-21
  • 打赏
  • 举报
回复
分页事件内还要绑定
yefeihaha 2005-11-21
  • 打赏
  • 举报
回复
private int startIndex;
private void Page_Load(object sender, System.EventArgs e)
{
where = "Colid="+Request.QueryString["cid"];
if (!IsPostBack)

{ startIndex=0;
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");}
}


private void MyConnection(string MySql)
{
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();

OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");

DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{ startIndex=e.NewPageIndex*DataGrid1.PageSize;
DataGrid1.CurrentPageIndex=e.NewPageIndex;
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}
swordragon 2005-11-21
  • 打赏
  • 举报
回复
如果刚才的代码不行的话:
private string where;

private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
where = "Colid="+Request.QueryString["cid"];
Session["Colid"] = where;
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}
}

private void MyConnection(string MySql)
{
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();

OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");

DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;

//where = "Colid="+Request.QueryString["cid"];
where = Session["Colid"].ToString();
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}
Anders_lt 2005-11-21
  • 打赏
  • 举报
回复
在PageIndexChanged 函数中要重新跟dataGrid 邦定
swordragon 2005-11-21
  • 打赏
  • 举报
回复
private string where;

private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
where = "Colid="+Request.QueryString["cid"];
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}
}

private void MyConnection(string MySql)
{
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();

OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");

DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;

where = "Colid="+Request.QueryString["cid"];
MyConnection("Select * from CommInfo where "+where+" ORDER BY PubTime DESC");
}
singlepine 2005-11-21
  • 打赏
  • 举报
回复
http://singlepine.cnblogs.com/articles/281425.html
sunnystar365 2005-11-21
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
MyConnection();
}
}

private void MyConnection()
{
string where = "Colid="+Request.QueryString["cid"];
string MySql="Select * from CommInfo where "+where+" ORDER BY PubTime DESC
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();

OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");

DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
}

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
MyConnection();
}

可以改为以上代码试一下。
如果还是没有显示,那就代码调试一下,看看PageIndexChanged事件会不会被执行
chmodyou 2005-11-21
  • 打赏
  • 举报
回复
看一下初始化函数InitializeComponent()中是否有这条语句:this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
vzxq 2005-11-21
  • 打赏
  • 举报
回复
翻页后要再绑定一次数据源

62,074

社区成员

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

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

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

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