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就可以翻页,不然程序都不执行翻页事件。郁闷,这是为什么啊刚注册的没分,不好意思啊期待中~~~````

解决方案 »

  1.   

    <%@ Page language="c#" Codebehind="DataGridTest.aspx.cs" AutoEventWireup="false" Inherits="HTJS.zzTest.DataGridTest" %>
    <!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>页面代码
      

  2.   

     AllowPaging=true 你好象没加
      

  3.   

    完整的写法
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px" AllowPaging=true  runat="server" Width="759px"> </asp:DataGrid>
      

  4.   

    跟这个没关系,控件是我从工具栏里拖过来的
    DataGrid1.AutoGenerateColumns=true时可以翻页
    DataGrid1.AutoGenerateColumns=false时不能翻页
      

  5.   

    关键是翻页后,你能得到数据吗?
    就是你的sql语句能查询到翻页后的数据吗!!
    你翻页后,他应该区“下一个你要得到的记录数”!!看看是否能得到,关键是这里!!
      

  6.   

    SQL语句没问题,数据都能查到
    但是DataGrid1.AutoGenerateColumns=true时查到的每条数据会重复两列显示出来,但翻页正常
    DataGrid1.AutoGenerateColumns=false时查到的每条数据显示一列,翻页之后DataGrid消失了,而且关键是跟本就没执行到翻页事件
      

  7.   

    解决方法
    把这一段
    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) 里另外两个数据的绑定,以及表格样式\是否分页\是否自动生成列的设定在页面代码里进行
      

  8.   

    上面写得不是很准确,重新帖.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(); 
      

  9.   

    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(); 
      

  10.   

    我是要动态绑定列,也就是说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();
    }稍后我会贴出图来,希望高手给分析下
      

  11.   

    CreatSource(); 方法只要把绑定的内容放进去就可以了,上面的在页面加载时候用就可以了
      

  12.   

    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
      

  13.   

    DataGrid1.AutoGenerateColumns=false;//不启用自动生成列
    设为TRUE就可以自动生成列了..
    当设为FALSE的时候 翻页后要自己写DATABIND()事件.
      

  14.   

    这是存储过程,没什么问题
    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)
      

  15.   

    翻页的时候指定 <asp:GridView ID="GridView1" OnPageIndexChanging="GridView1_PageIndexChanging" runat="server">然后在GridView1_PageIndexChanging函数中写 GridView1.PageIndex=(你想跳转到的页数)
    然后再进行一次数据绑定就行了。    效率不太高但是一般数据量不大的时候很简便。如果数据量大的情况下还是建议用存储过程分页。
      

  16.   

    vs2005的GridView做翻页很简单的呀
    AutoGenerateColumns是指是否自动生成列.