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就可以翻页,不然程序都不执行翻页事件。郁闷,这是为什么啊刚注册的没分,不好意思啊期待中~~~````
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就可以翻页,不然程序都不执行翻页事件。郁闷,这是为什么啊刚注册的没分,不好意思啊期待中~~~````
解决方案 »
- winform下面给DataGridViewCheckBoxColumn设置AutoSizeMode为ColumnHeader报错奇怪
- 请问:private System.ComponentModel.Container components = null是什么意思?
- 如何使用C#编写的服务程序管理其他系统服务?
- 大家都用c#做哪方面的应用,顺便散分?
- 怎么样在用C#生成的Excel中实现标题置顶,即实现拆分和窗口冻结的功能?
- !!!Asp.net下服务器端杀死Excel进程的办法??
- 如何实现将本机的“资源管理器”在Win App中的AxWebBrowser控件中显示出来呢?
- 一个小问题~
- 序列化 Region
- 关于把文本文件转成数据库的问题,那位高手能帮帮忙阿? 高分求解 500分
- 进制转换的问题
- datagrid中设置某行为当前行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>DataGridTest</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px" runat="server" Width="759px"></asp:DataGrid>
</form>
</body>
</HTML>页面代码
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px" AllowPaging=true runat="server" Width="759px"> </asp:DataGrid>
DataGrid1.AutoGenerateColumns=true时可以翻页
DataGrid1.AutoGenerateColumns=false时不能翻页
就是你的sql语句能查询到翻页后的数据吗!!
你翻页后,他应该区“下一个你要得到的记录数”!!看看是否能得到,关键是这里!!
但是DataGrid1.AutoGenerateColumns=true时查到的每条数据会重复两列显示出来,但翻页正常
DataGrid1.AutoGenerateColumns=false时查到的每条数据显示一列,翻页之后DataGrid消失了,而且关键是跟本就没执行到翻页事件
把这一段
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 CreatSource() 里删除
这一段
BoundColumn xh=new BoundColumn();
xh.HeaderText="序号";
xh.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
DataGrid1.Columns.Add(xh);
挪到if(!IsPostBack) 里另外两个数据的绑定,以及表格样式\是否分页\是否自动生成列的设定在页面代码里进行
{
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();
}
{
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();
}
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();
}稍后我会贴出图来,希望高手给分析下
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
设为TRUE就可以自动生成列了..
当设为FALSE的时候 翻页后要自己写DATABIND()事件.
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)
然后再进行一次数据绑定就行了。 效率不太高但是一般数据量不大的时候很简便。如果数据量大的情况下还是建议用存储过程分页。
AutoGenerateColumns是指是否自动生成列.