[.NET] GridView+SqlDataSource的分页问题

楼主: renmax (竹科學友哥)   2016-03-22 17:07:40
请输入专案类型(网站专案或者应用程式专案):VB.net VS2015
各位版友好
我使用DropDownList1、GridView1、GridView2加上SqlDataSource来制作这次的专案
首先,在DropDownList1_SelectedIndexChanged内
SqlDataSource1.SelectCommand = "SELECT ........ GROUP BY .... "
GridView1.DataSourceID = "Sqldatasource1"
接着,在GridView1_SelectedIndexChanged内
SqlDataSource2.SelectCommand = "SELECT ..... order by date"
GridView2.DataSourceID = "Sqldatasource2"
另外,也使用了<asp:CommandField ShowSelectButton="True" />
最后,希望按下GridView1的按钮后,会显示GridView2
但是按下第二页(不管是GridView1或GridView2)时,GridView都会消失,无法显示内容
虽然有在GridView1_PageIndexChanging和GridView2_PageIndexChanging内
有加上GridView1.PageIndex = e.NewPageIndex
GridView2.PageIndex = e.NewPageIndex
但依旧无效,是否有什么地方是我没有注意到的呢?
麻烦了,谢谢
作者: JohnYaEPen (酱也一篇)   2016-03-23 17:23:00
下次可以善用中断点,一步一步找问题会比较快~哈至于比较简单的写法我也不知道你的简单的定义是什么@@你可以把一样的sql拉出来外面定义,例如gv1sql = XXX最后Gv1.selectcommand = gv1sql然后写一个带参数的function 去设定gv1sqlfunction setsql(name, datefrom, dateto)indexchange就去call function可以省掉一些重复的东西,不过实际状况还是看你怎么用但是我是建议你捞资料的东西写在App_Code的class里比较方便,其他支要用就不用再写一次了
楼主: renmax (竹科學友哥)   2016-03-23 16:51:00
类似于 member_id = @member_id 的意思找到原因了 因为在PageIndexChanging内没抓到ddl的时间值不过 每个SUB内都要加上再抓DDL的日期 好像有点麻烦不知道有没有比较简单的写法@@? 谢谢
作者: JohnYaEPen (酱也一篇)   2016-03-23 15:45:00
暂时没看出什么问题,你可以下中断点,然后取出TSQL然后用那段语法直接进DB捞,看看有没有资料另外我发现你SqlDataSource1的大小写没有一致唷,但我不确定 大小写没一致是不是会影响<asp:SqlDataSource ID="SqlDataSource1" >GridView1.DataSourceID = "Sqldatasource1"WHERE (member_id = ?) 这个是什么意思@@?
楼主: renmax (竹科學友哥)   2016-03-23 14:17:00
作者: JohnYaEPen (酱也一篇)   2016-03-22 17:38:00
你要再给一次sourcedatasource我是都写function捞资料fill到datatable里,在把dt给GV然后bind()你的用法我没试过,或许你可以下中断点看看,是不是在切页捞资料的时候出问题,致使gv空白
作者: Ammenze (蓝天白云)   2016-03-23 08:46:00
在PageIndexChanging那边下gridview.DataBind()
楼主: renmax (竹科學友哥)   2016-03-23 10:25:00
加上GridView.DataBind()依旧无法 @@"写function的话 是不是就要写两个 分别针对gv1和gv2呢?
作者: JohnYaEPen (酱也一篇)   2016-03-23 10:40:00
方便贴完整code在什么地方吗? sql可以不用

Links booklink

Contact Us: admin [ a t ] ucptt.com