DataGrid无法翻页,求教高手!

soheavyrain 2008-09-24 05:02:08
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using HTJS.DAL.Admin;

namespace HTJS.zzTest
{
/// <summary>
/// DataGridTest 的摘要说明。
/// </summary>
public class DataGridTest : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

if(!IsPostBack)
{
CreatSource();
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void CreatSource()
{

DataGrid1.AutoGenerateColumns=false;

DataGrid1.FooterStyle.ForeColor=Color.FromName("#000066");
DataGrid1.FooterStyle.BackColor=Color.White;
DataGrid1.SelectedItemStyle.Font.Bold=true;
DataGrid1.SelectedItemStyle.ForeColor=Color.White;
DataGrid1.SelectedItemStyle.BackColor=Color.White;
DataGrid1.ItemStyle.ForeColor=Color.FromName("#000066");
DataGrid1.HeaderStyle.Font.Size=9;
DataGrid1.HeaderStyle.Font.Name="宋体";
DataGrid1.HeaderStyle.Font.Bold=true;
DataGrid1.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.HeaderStyle.ForeColor=Color.Black;
DataGrid1.HeaderStyle.BackColor=Color.FromName("#92D2D5");
DataGrid1.PagerStyle.HorizontalAlign=HorizontalAlign.Right;
DataGrid1.PagerStyle.ForeColor=Color.FromName("#000066");
DataGrid1.PagerStyle.BackColor=Color.White;
DataGrid1.PagerStyle.PageButtonCount=5;


DataGrid1.AllowPaging=true;
DataGrid1.PageSize=10;
DataGrid1.PagerStyle.Mode=PagerMode.NumericPages;


BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);

BoundColumn ys1=new BoundColumn();
ys1.DataField="khmc";
ys1.HeaderText="客护名称";
DataGrid1.Columns.Add(ys1);
BoundColumn ys2=new BoundColumn();
ys2.DataField="skfs";
ys2.HeaderText="收款方式";
DataGrid1.Columns.Add(ys2);
BoundColumn ys3=new BoundColumn();
ys3.DataField="je";
ys3.HeaderText="金额";
DataGrid1.Columns.Add(ys3);

DataSet da=se.zjysselect("1900-1-1","1900-1-1");
DataGrid1.DataSource=da;
DataGrid1.DataBind();
}

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

}
}


页面上放个DataGrid ,随便绑点数据进去就可以运行了,高手可以稍微改一下就能运行

我找到问题了,DataGrid1.AutoGenerateColumns=false;设置成true就可以翻页,不然程序都不执行翻页事件。郁闷,这是为什么啊

刚注册的没分,不好意思啊

期待中~~~````
...全文
884 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 pcitlju 的回复:]
找个分页控件,很好很强大。
我们也是用VS2003在开发。
[/Quote]
恩好的谢谢
不过那是以后的事了
pcitlju 2008-09-25
  • 打赏
  • 举报
回复
找个分页控件,很好很强大。
我们也是用VS2003在开发。
Cyril_Tam 2008-09-25
  • 打赏
  • 举报
回复
vs2005的GridView做翻页很简单的呀
AutoGenerateColumns是指是否自动生成列.
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
虽然问题没解决
还是感谢大家的回复
分不知道怎么发,有知道的告诉下谢谢
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
不抛弃!不放弃!
我再等!
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 cainiao116 的回复:]
翻页的时候指定 <asp:GridView ID="GridView1" OnPageIndexChanging="GridView1_PageIndexChanging" runat="server">

然后在GridView1_PageIndexChanging函数中写 GridView1.PageIndex=(你想跳转到的页数)
然后再进行一次数据绑定就行了。    效率不太高但是一般数据量不大的时候很简便。

如果数据量大的情况下还是建议用存储过程分页。
[/Quote]
数据量不大
我有分页代码
存储过程分页还真不知道,有机会学习下,不过的确跟现在不相关
具体错误情况看19楼有图
cainiao116 2008-09-25
  • 打赏
  • 举报
回复
翻页的时候指定 <asp:GridView ID="GridView1" OnPageIndexChanging="GridView1_PageIndexChanging" runat="server">

然后在GridView1_PageIndexChanging函数中写 GridView1.PageIndex=(你想跳转到的页数)
然后再进行一次数据绑定就行了。 效率不太高但是一般数据量不大的时候很简便。

如果数据量大的情况下还是建议用存储过程分页。
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
我等
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
这是存储过程,没什么问题
ALTER PROCEDURE dbo.jbxx_zjhk_select
(
@rq datetime,
@rq1 datetime
)
AS

select sqbt,sqbm,sqrq,sqr,sqje,sqbz,yjspr,yjspjg,sjspr,sjspjg,zxbj from jsgl_ywsq where sqzl='汇款申请' and ( @rq='1900-1-1'or sqrq >=@rq )and ( @rq1='1900-1-1'or sqrq <=@rq1)


sxmonsy 2008-09-25
  • 打赏
  • 举报
回复
DataGrid1.AutoGenerateColumns=false;//不启用自动生成列
设为TRUE就可以自动生成列了..
当设为FALSE的时候 翻页后要自己写DATABIND()事件.
jx_china 2008-09-25
  • 打赏
  • 举报
回复
学习
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 zhnzzy 的回复:]
CreatSource(); 方法只要把绑定的内容放进去就可以了,上面的在页面加载时候用就可以了
[/Quote]
俺是想动态绑定,可能哪里写的不对
看看14楼
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mokton 的回复:]
引用 8 楼 soheavyrain 的回复:

SQL语句没问题,数据都能查到
但是DataGrid1.AutoGenerateColumns=true时查到的每条数据会重复两列显示出来,但翻页正常
DataGrid1.AutoGenerateColumns=false时查到的每条数据显示一列,翻页之后DataGrid消失了,而且关键是跟本就没执行到翻页事件
当然可以贴图,不过要先发到网上
[/Quote]

不会帖~~``
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
DataGrid1.AutoGenerateColumns=true时查到的每条数据会重复两列显示出来,但翻页正常(下图)
http://img8.zol.com.cn/bbs/upload/1240/1239473_0600.JPG
DataGrid1.AutoGenerateColumns=false时查到的每条数据显示一列,翻页之后DataGrid消失了,而且关键是跟本就没执行到翻页事件 下图
http://img8.zol.com.cn/bbs/upload/1240/1239476_0600.JPG
翻页后
http://img8.zol.com.cn/bbs/upload/1240/1239467_0600.JPG
zhnzzy 2008-09-25
  • 打赏
  • 举报
回复
CreatSource(); 方法只要把绑定的内容放进去就可以了,上面的在页面加载时候用就可以了
zhnzzy 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 amandag 的回复:]
2008年了坚持用VS2003的还不少啊
[/Quote]

2003做的项目维护还是用2003哦
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 amandag 的回复:]
2008年了坚持用VS2003的还不少啊
[/Quote]
大哥,别光顾着看热闹好不
amandag 2008-09-25
  • 打赏
  • 举报
回复
2008年了坚持用VS2003的还不少啊
soheavyrain 2008-09-25
  • 打赏
  • 举报
回复
我是要动态绑定列,也就是说DataGrid里要绑什么数据,会绑几列数据都不固定,因为有很多存储过程,很多表
private void CreatSource(string rq,string rq1,string lx)
{

DataSet da=new DataSet();

DataGrid1.AutoGenerateColumns=true;

DataGrid1.FooterStyle.ForeColor=Color.FromName("#000066");
DataGrid1.FooterStyle.BackColor=Color.White;
DataGrid1.SelectedItemStyle.Font.Bold=true;
DataGrid1.SelectedItemStyle.ForeColor=Color.White;
DataGrid1.SelectedItemStyle.BackColor=Color.White;
DataGrid1.ItemStyle.ForeColor=Color.FromName("#000066");
DataGrid1.HeaderStyle.Font.Size=9;
DataGrid1.HeaderStyle.Font.Name="宋体";
DataGrid1.HeaderStyle.Font.Bold=true;
DataGrid1.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.HeaderStyle.ForeColor=Color.Black;
DataGrid1.HeaderStyle.BackColor=Color.FromName("#92D2D5");
DataGrid1.PagerStyle.HorizontalAlign=HorizontalAlign.Right;
DataGrid1.PagerStyle.ForeColor=Color.FromName("#000066");
DataGrid1.PagerStyle.BackColor=Color.White;
DataGrid1.PagerStyle.PageButtonCount=5;

DataGrid1.AllowPaging=true;
DataGrid1.PageSize=2;
DataGrid1.PagerStyle.Mode=PagerMode.NumericPages;

if(lx=="预收款")
{

BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);

BoundColumn ys1=new BoundColumn();
ys1.DataField="khmc";
ys1.HeaderText="客护名称";
DataGrid1.Columns.Add(ys1);
BoundColumn ys2=new BoundColumn();
ys2.DataField="skfs";
ys2.HeaderText="收款方式";
DataGrid1.Columns.Add(ys2);
BoundColumn ys3=new BoundColumn();
ys3.DataField="je";
ys3.HeaderText="金额";
DataGrid1.Columns.Add(ys3);
BoundColumn ys4=new BoundColumn();
ys4.DataField="khye";
ys4.HeaderText="客户余额";
DataGrid1.Columns.Add(ys4);
BoundColumn ys5=new BoundColumn();
ys5.DataField="jsr";
ys5.HeaderText="经手人";
DataGrid1.Columns.Add(ys5);
BoundColumn ys6=new BoundColumn();
ys6.DataField="bj2";
ys6.DataFormatString="{0:yyyy-MM-dd}";
ys6.HeaderText="日期";
DataGrid1.Columns.Add(ys6);
BoundColumn ys7=new BoundColumn();
ys7.DataField="bj3";
ys7.HeaderText="备注";
DataGrid1.Columns.Add(ys7);
BoundColumn ys8=new BoundColumn();
ys8.DataField="jsrbm";
ys8.HeaderText="部门";
DataGrid1.Columns.Add(ys8);
jbxxwh se=new jbxxwh();
da=se.zjysselect(rq,rq1);
DataGrid1.DataSource=da;
DataGrid1.DataBind();
}
else if(lx=="欠款")
{
BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);

BoundColumn qk1=new BoundColumn();
qk1.DataField="zkb_khmc";
qk1.HeaderText="客户名称";
DataGrid1.Columns.Add(qk1);
BoundColumn qk2=new BoundColumn();
qk2.DataField="zkb_ysje";
qk2.HeaderText="应收金额";
DataGrid1.Columns.Add(qk2);
BoundColumn qk3=new BoundColumn();
qk3.DataField="zkb_yfje";
qk3.HeaderText="已付金额";
DataGrid1.Columns.Add(qk3);
BoundColumn qk4=new BoundColumn();
qk4.DataField="zkb_qkje";
qk4.HeaderText="欠款金额";
DataGrid1.Columns.Add(qk4);
BoundColumn qk5=new BoundColumn();
qk5.DataField="zkb_qkrq";
qk5.HeaderText="欠款日期";
qk5.DataFormatString="{0:yyyy-MM-dd}";
DataGrid1.Columns.Add(qk5);
BoundColumn qk6=new BoundColumn();
qk6.DataField="zkb_bm";
qk6.HeaderText="部门";
DataGrid1.Columns.Add(qk6);
BoundColumn qk7=new BoundColumn();
qk7.DataField="zkb_hkrq";
qk7.HeaderText="还款日期";
qk7.DataFormatString="{0:yyyy-MM-dd}";
DataGrid1.Columns.Add(qk7);
BoundColumn qk8=new BoundColumn();
qk8.DataField="zkb_jsr";
qk8.HeaderText="经手人";
DataGrid1.Columns.Add(qk8);
jbxxwh se=new jbxxwh();
da=se.zjqkselect(rq,rq1);
DataGrid1.DataSource=da;
DataGrid1.DataBind();
}
else if(lx=="结帐(未开票)")
{
BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);

BoundColumn wkp1=new BoundColumn();
wkp1.DataField="fxsmc";
wkp1.HeaderText="分销商名称";
DataGrid1.Columns.Add(wkp1);
BoundColumn wkp2=new BoundColumn();
wkp2.DataField="jksj";
wkp2.HeaderText="交款日期";
wkp2.DataFormatString="{0:yyyy-MM-dd}";
DataGrid1.Columns.Add(wkp2);
BoundColumn wkp3=new BoundColumn();
wkp3.DataField="jkze";
wkp3.HeaderText="交款总额";
DataGrid1.Columns.Add(wkp3);
BoundColumn wkp4=new BoundColumn();
wkp4.DataField="jsr";
wkp4.HeaderText="经手人";
DataGrid1.Columns.Add(wkp4);
BoundColumn wkp5=new BoundColumn();
wkp5.DataField="bz";
wkp5.HeaderText="备注";
DataGrid1.Columns.Add(wkp5);
jbxxwh se=new jbxxwh();
da=se.zjwkpselect(rq,rq1);
DataGrid1.DataSource=da;
DataGrid1.DataBind();
}

稍后我会贴出图来,希望高手给分析下
zt_100094 2008-09-25
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
CreatSource();
BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);
}
}

private void CreatSource()
{

//数据源获取
DataGrid1.DataSource=da;
DataGrid1.DataBind();
}
加载更多回复(13)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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