实在是没办法了。这个问题问了2天了。
为什么分页只显示第一页,点下一页就没数据。
如果将bind()里面的参数和button里面的onclik去掉的话。button就失效了。
各位大哥帮我一下啊。我这个是自学的。谁能帮我解决了。我每天帮他刷100分都没问题。
<script runat="server" language="c#">
protected void Page_Load(object sender, EventArgs e)
{
 if(!IsPostBack)
  {
    //这里是页面默认打开数据,用DataGrid显示数据。
   }
else
 {
  bind();
 } 
}private void bind(object sender, EventArgs e)
{
//这里用搜索来显示数据。也用的用DataGrid显示数据
}public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
 dgrdMain.CurrentPageIndex = e.NewPageIndex;
 DataBind();
}
<asp:Button ID="Button1" Text="开始查询" runat="server" />
<asp:DataGrid ID="dgrdMain"……>
<PagerStyle   NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
</asp:DataGrid>

解决方案 »

  1.   

    private void bind(object sender, EventArgs e)bind();DataBind();什么意思啊?
      

  2.   

    应该用bind(),而不应该用DataBind()
      

  3.   

    哦。我去修改一下看看。
    private void bind(object sender, EventArgs e)
    这里是我自己写的自己搜索的函数。
    bind();调用我自己写的函数。
    DataBind();我认为是分页的控件自己的函数。
      

  4.   


    protected void Page_Load(object sender, EventArgs e)
    {
    if(!IsPostBack)
    {
    //这里是页面默认打开数据,用DataGrid显示数据。}
    另外搜索出来的就别放在这里了,
    加在按钮的onclick事件里
      

  5.   

    你自己写的bind函数你用那些 sender 甚么的参数干吗?你的代码里面有用到吗?
      

  6.   

    十分感谢各位帮我解决问题。
    现在的问题就是。
    DataBind()---》bind();
    为什么我点下一页的时候就没数据了。
      

  7.   

    glamorsunny(魅力阳光) :
      你的意思是Page_Load里面的else后面那截不要吗?
      

  8.   

    写法有问题!!设计的就不合理.
    private void Bind()
     {
       if(condition)
         {
            sql=".........";
         }
       else
         {
           sql=".........";
         }
       //绑定gridview
     }
    public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    //分页
     dgrdMain.CurrentPageIndex = e.NewPageIndex;
     Bind();
    }
      

  9.   

    1、LZ不应该拿分来引诱,特别是违规的举动2、分页整体思路有问题I.创建需要绑定的数据源
    private DataSet GetDataSet()
    {
       //创建DataGrid数据源
    }II.DataGrid绑定
    private void Bind()
    {
       dgrdMain.DataSource = GetDataSet();
       dgrdMain.DataBind();
    }III.页面绑定
    protected void Page_Load(object sender, EventArgs e)
    {
     if(!IsPostBack)
      {
         Bind();
       }
    }IV.分页处理
    public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    //分页
     dgrdMain.CurrentPageIndex = e.NewPageIndex;
     Bind();
    }
      

  10.   

    protected void Page_Load(object sender, EventArgs e)
    {
    if(!IsPostBack)
    {
    //这里是页面默认打开数据,用DataGrid显示数据。}
    另外搜索出来的就别放在这里了,
    加在按钮的onclick事件里这个方法可行 将button写在脚本上触发 将button设置0,0,1,1
      

  11.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    //统一获取分页文字描述
    labCurrPageDes.Text = CommonFunPage.strCurrPageDes;
    labSumPageDes.Text = CommonFunPage.strSumPageDes;
    labRedirectPageDes.Text = CommonFunPage.strRedirectPageDes;
    lbtnPageFirst.Text = CommonFunPage.strFirstPageDes;
    lbtnPagePre.Text = CommonFunPage.strPrevPageDes;
    lbtnPageNext.Text = CommonFunPage.strNextPageDes;
    lbtnPageLast.Text = CommonFunPage.strLastPageDes;

    if(Page.IsPostBack)
    {
    return;
    } //公司显示的搜索站点
    DomainURL = ConfigurationSettings.AppSettings["DomainURL"].Trim();

    //显示所查询的模糊信息
    ShowCorpInfoList();
    //增加跳转页按钮点击事件
    lbutPageGo.Attributes["onclick"] = "return chkPageGo("+labPageCount.Text.Trim()+");";
    } /// <summary>
    /// 功能描述:显示上市公司模糊查询列表
    /// 输入参数:无
    /// 输出参数:无
    /// </summary>
    /// <param name="dv_CorpInfo"></param>
    private void ShowCorpInfoList()
    {
    DataView dv_CorpInfo = null; //创建视图
    //获取上市公司的CorpInfo.xml的跳转地址
    string strXMLCorpPath = ConfigurationSettings.AppSettings["CreateFilePath"].Trim();
    strXMLCorpPath = strXMLCorpPath + @"/XML_Company/CorpInfo.xml";

    //初始化上市公司信息
    InitialCorpInfo(strXMLCorpPath);
    if(dtCorpInfo == null)
    {
    ShowErrorPage("现在网络繁忙,请稍候再试","close");
    return;
    }
    if(dtCorpInfo.Rows.Count <= 0)
    {
    //公司信息表中没有数据
    ShowErrorPage("很抱歉,没有你所要查找的信息","close");
    return;
    }
    dv_CorpInfo = dtCorpInfo.DefaultView;
    dv_CorpInfo.Sort = "StockCode ";
    if(Request.Params["txtCorpSearch"] != null)
    {
    if(Request.Params["txtCorpSearch"].ToString().Trim() != "")
    {
    ViewState["Stockocde"] =  Request.Params["txtCorpSearch"].ToString().Trim();
    }
    }
    if(ViewState["Stockocde"]!=null)
    {
    dv_CorpInfo.RowFilter = "StockCode like '%"+ViewState["Stockocde"].ToString()+"%'"; //进行模糊查询股票编号
    }


    int iCorpCount = dv_CorpInfo.Count; //获取筛选后的信息
    if(iCorpCount == 0)
    {
    //公司信息表中没有数据
    ShowErrorPage("很抱歉,没有你所要查找的信息","close");
    return;
    }
    if(iCorpCount == 1)
    {
    //跳转到针对这家公司页面
    Response.Redirect("~/Webs/CorpInfo/CorpIndex.aspx?StockCode="+ViewState["Stockocde"].ToString());
    return;
    }     PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(dv_CorpInfo.Count) / Convert.ToInt32(dg_CorpLst.PageSize)));
    labPageCount.Text = PageCount.ToString();
    if(PageCount>0 && CurrentPageIndex == 0)
    {
    CurrentPageIndex=1;
    }
    else
    {
    dg_CorpLst.CurrentPageIndex = CurrentPageIndex-1 ;
    }
    dg_CorpLst.DataSource = (object)dv_CorpInfo;
    dg_CorpLst.DataBind();
    SetLinkLutton();
    labCurPage.Text = CurrentPageIndex.ToString() ;
    } /// <summary>
    /// 功能描述:显示公司信息全称和股票代码卡号
    /// 输入参数:公司全称和股票编号
    /// 输出参数:字符类型
    /// </summary>
    /// <param name="strCorpName"></param>
    /// <param name="strStockCode"></param>
    /// <returns></returns>
    protected string CorpCont(string strCorpName)
    {
    string strCorpCont = "";
    strCorpCont = GetStringPartContent(strCorpName,50,true); //截取字符
    return strCorpCont;
    } protected string URL(string strStockCode)
    {
    string strURL = @"~/Webs/CorpInfo/CorpIndex.aspx?StockCode=" + strStockCode;
    return strURL;
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.lbtnPageFirst.Click += new System.EventHandler(this.lbtnPageFirst_Click);
    this.lbtnPagePre.Click += new System.EventHandler(this.lbtnPagePre_Click);
    this.lbtnPageNext.Click += new System.EventHandler(this.lbtnPageNext_Click);
    this.lbtnPageLast.Click += new System.EventHandler(this.lbtnPageLast_Click);
    this.lbutPageGo.Click += new System.Web.UI.ImageClickEventHandler(this.lbutPageGo_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion //当前页属性********以下为公用复制********/
    protected int CurrentPageIndex
    {
    get
    {
    object _oCurPage = ViewState["CurrentPageIndex"];
    return _oCurPage == null ? 0 : Convert.ToInt32(_oCurPage);
    }
    set
    {
    ViewState["CurrentPageIndex"]=value;
    }
    } //当页总数属性
    protected int PageCount
    {
    get
    {
    object _oPageCount = ViewState["PageCount"];
    return _oPageCount == null ? 0 : Convert.ToInt32(_oPageCount);
    }
    set
    {
    ViewState["PageCount"]=value;
    }
    }
    //判断显示按钮
    private void SetLinkLutton()
    {
    switch(CurrentPageIndex)
    {
    case 0:
    lbtnPageFirst.Enabled  =false;
    lbtnPagePre.Enabled =false;
    lbtnPageNext.Enabled =false;
    lbtnPageLast.Enabled =false;
    break;
    case 1:
    lbtnPageFirst.Enabled =false;
    lbtnPagePre.Enabled =false;
    lbtnPageNext.Enabled =true;
    lbtnPageLast.Enabled =true;
    if(CurrentPageIndex==PageCount)
    {
    lbtnPageNext.Enabled =false;
    lbtnPageLast.Enabled =false;
    }
    break;
    default:
    if(CurrentPageIndex==PageCount)
    {
    lbtnPageFirst.Enabled =true;
    lbtnPagePre.Enabled =true;
    lbtnPageNext.Enabled =false;
    lbtnPageLast.Enabled =false;
    }
    else
    {
    lbtnPageFirst.Enabled =true;
    lbtnPagePre.Enabled =true;
    lbtnPageNext.Enabled =true;
    lbtnPageLast.Enabled =true;
    }
    break;
    }
    }
    private void lbtnPageFirst_Click(object sender, System.EventArgs e)
    {
    this.CurrentPageIndex=1;
    ShowCorpInfoList();
    } private void lbtnPagePre_Click(object sender, System.EventArgs e)
    {
    if(CurrentPageIndex>1)
    {
    this.CurrentPageIndex=CurrentPageIndex-1;
    ShowCorpInfoList();
    }
    } private void lbtnPageNext_Click(object sender, System.EventArgs e)
    {
    if(CurrentPageIndex<PageCount)
    {
    this.CurrentPageIndex=CurrentPageIndex+1;
    ShowCorpInfoList();
    }
    } private void lbtnPageLast_Click(object sender, System.EventArgs e)
    {
    this.CurrentPageIndex=PageCount;
    ShowCorpInfoList();
    } private void lbutPageGo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    this.CurrentPageIndex = Convert.ToInt32(txtPage.Text.Trim());
    ShowCorpInfoList();
    } private void dg_CorpLst_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
    e.Item.Cells[1].ToolTip = "进入该公司信息页面";
    }
    }
      

  12.   

    <table width=100% border="0" cellpadding="0" align=center cellspacing="0" bgcolor="#FFFFFF" class="moretable">
            <tr><td align=center>
    <asp:DataGrid id="dg_CorpLst" runat="server" ShowHeader="False" AutoGenerateColumns="False" PageSize="15"
    BorderWidth="0px" GridLines="None" AllowPaging="True" Width=690>
    <AlternatingItemStyle CssClass="DataBridAltern"></AlternatingItemStyle>
    <ItemStyle CssClass="DataGridItem"></ItemStyle>
    <Columns>
    <asp:TemplateColumn HeaderText="图标">
    <HeaderStyle Width="100px"></HeaderStyle>
    <ItemStyle CssClass="Scroll" Width=10 HorizontalAlign=Center></ItemStyle>
    <ItemTemplate>
    ·&nbsp;&nbsp;
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:HyperLink ID="hlStockCode" Target=_blank NavigateUrl='<%# URL(DataBinder.Eval(Container,"DataItem.StockCode").ToString()) %>' CssClass="titleLk" Runat=server>
    <%# DataBinder.Eval(Container, "DataItem.StockCode").ToString() %>
    </asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="SimpleName" HeaderText="公司简称">
    <ItemStyle CssClass="PageFont" Height="30" Width=200 HorizontalAlign=Left></ItemStyle>
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="公司全称">
    <ItemStyle Width=300 HorizontalAlign=Left CssClass="PageFont"></ItemStyle>
    <ItemTemplate>
    <%# CorpCont(DataBinder.Eval(Container, "DataItem.CorpName").ToString()) %>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle Visible="False"></PagerStyle>
    </asp:DataGrid>
            </td>
            </tr>
          </table>
          <table width="760" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="moretable">
            <tr>
              <td height="50" align="center" valign="middle"><table width="690" height="20" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#F3f3f3">
                <tr>
                  <td align="center" class="PageFont">
                  <div align="center"><form runat="server" ID="Form1">
    <asp:Label ID="labCurrPageDes" Runat="server" CssClass="PageFont">[页次</asp:Label>
    <asp:label id="labCurPage" runat="server" ForeColor="Red"></asp:label>/
    <asp:label id="labPageCount" runat="server"></asp:label>
    <asp:Label ID="labSumPageDes" Runat="server">页]</asp:Label>&nbsp;
    <asp:linkbutton id="lbtnPageFirst" runat="server" CssClass="Page_div">首页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="lbtnPagePre" runat="server" CssClass="Page_div">上页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="lbtnPageNext" runat="server" CssClass="Page_div">下页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="lbtnPageLast" runat="server" CssClass="Page_div">末页</asp:linkbutton>&nbsp;
    <asp:Label ID="labRedirectPageDes" Runat="server" CssClass="PageFont">跳转:</asp:Label>&nbsp;
    <asp:textbox id="txtPage" runat="server" Width="32px" Height="18px" MaxLength="5" CssClass="Input"></asp:textbox>页
    <asp:imagebutton id="lbutPageGo" runat="server" ImageAlign="AbsMiddle" ImageUrl="../../images/go.gif"></asp:imagebutton>
    </form>
    </div>
    </td>
                </tr>
              </table></td>
              </tr>
          </table>
      

  13.   

    以上是完整的分页代码,只是读取的XML文件,你可以参看,把读取XML数据的部分换成你的数据库就OK了。要声明下面的。呵呵
    public string DomainURL; //全站搜索的指定路径
      

  14.   

    leafsword_519(藏马)(玫瑰舞) ( ) 信誉:98    Blog  2007-03-27 09:29:50  得分: 0  
     
    I.创建需要绑定的数据源
    private DataSet GetDataSet()
    {
       //创建DataGrid数据源
    }II.DataGrid绑定
    private void Bind()
    {
       dgrdMain.DataSource = GetDataSet();
       dgrdMain.DataBind();
    }III.页面绑定
    protected void Page_Load(object sender, EventArgs e)
    {
     if(!IsPostBack)
      {
         Bind();
       }
    }IV.分页处理
    public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    //分页
     dgrdMain.CurrentPageIndex = e.NewPageIndex;
     Bind();
    } ================================
    正解。asp.net中,你点击页面上的服务器事件时,他都会重新跑一遍Page_Load事件 ,不过是在
    if(!Page.IsPostBack)
    {}之外 ,所以楼主的else要去掉,在分页事件里写Bind()(你的到数据实体的事件)就行了。