日期:2014-05-18  浏览次数:20429 次

动态数据绑定问题
刚学校 .Net2.0   的数据绑定,出了下面一个问题,请大家看看。

一个简单的数据绑定步骤如下:
拉一个数据源控件,设置数据源(包括数据库连接和表等),然后再拉一个GridView控件出来,把其数据源指定到数据源控件。这样一个最简单的数据显示就完成了,提取的是表中的所有数据。我给分页,排序都打了勾,也都测试正常。

以上是默认拉出来的方式,网页一打开就显示表中的所有记录。我想这样,放一个按钮,网页刚打开时不显示数据表,按一下按钮再显示。做法如下:
先把GridView   的数据源清除,保留分页,排序属性,也不清除列。
然后在 按钮的 事件如下

        Protected   Sub   Button1_Click(ByVal   sender   As   Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click
                Me.GridView1.DataSource   =   SqlDataSource1
                Me.GridView1.DataBind()
        End   Sub

这样,网页刚打开GridView没有数据,按了一下按钮后就有数据了。可是,当点一下第2页时,出现下面的错误,如何解决?


GridView“GridView1”激发了未处理的事件“PageIndexChanging”。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.Web.HttpException:   GridView“GridView1”激发了未处理的事件“PageIndexChanging”。

源错误:  

执行当前   Web   请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。    

堆栈跟踪:  


[HttpException   (0x80004005):   GridView“GridView1”激发了未处理的事件“PageIndexChanging”。]
      System.Web.UI.WebControls.GridView.OnPageIndexChanging(GridViewPageEventArgs   e)   +324
      System.Web.UI.WebControls.GridView.HandlePage(Int32   newPage)   +110
      System.Web.UI.WebControls.GridView.HandleEvent(EventArgs   e,   Boolean   causesValidation,   String   validationGroup)   +516
      System.Web.UI.WebControls.GridView.RaisePostBackEvent(String   eventArgument)   +213
      System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String   eventArgument)   +31
      System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,   String   eventArgument)   +32
      System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)   +242
      System.Web.UI.Page.ProcessRequestMain(Boolean   includeStagesBeforeAsyncPoint,   Boolean   includeStagesAfterAsyncPoint)   +3838

 




------解决方案--------------------
关注一下