這個問題,原發問者在藍色小舖的提問
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090909182013MZN&fumcde=FUM20041006161839LRJ
說真的,我看不懂他想問啥?
直到一位好朋友重新描述了他的問題,我才看懂。
題 目 ----
我一支網頁裡,同時放二個東西,
一個是 GridView, 每頁 5 筆,用來顯示會員記錄, 下方有一個分頁列
一個是表單,用來編輯單筆會員記錄, 下方也有一個分頁列,方便使用者按"下一筆","上一筆",不必去按 GridView 的某一筆才能進行編輯
問題是, 若在表單處一直按 "下一筆",希望按到第 6筆時,上方 GridView 也能自動變成第 2 頁
(因為 5 筆一頁,所以第 6筆,算是 GridView第 2 頁)
Allen Kuo最早給了解法,而且還套用了 Design Pattern,實在很厲害
請看他的解法。http://www.allenkuo.com/EBook5/view.aspx?TreeNodeID=55&id=607
========================================
我沒有那麼厲害,但我想用初學者也能接受的方法來作。
靠畫面設定、盡量少寫程式,也完成了一小部份。(不敢說毫無Bug)
我的想法很簡單。
這個問題的主角是「DetailsView」,當他一筆一筆的換頁
GridView的頁數必須隨之連動。
我的 GridView 每一頁,呈現五筆資料
根據題目的要求:
若在表單處一直按 "下一筆",希望按到第 6筆時,上方 GridView 也能自動變成第 2 頁
(因為 5 筆一頁,所以第 6筆,算是 GridView第 2 頁)
這個問題主要是在:練習 GridView / DetailsView分頁的技巧,學會兩個控制項的分頁事件
在HTML畫面的設計上,我用了 GridView + SqlDataSource1
DetailsView1 + SqlDataSource2
兩者都很簡單啦,只是用來呈現出所有資料,並且讓控制項都有「分頁」的功能罷了。
02 AutoGenerateColumns="False" CellPadding="4" DataKeyNames="id"
03 DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" PageSize="5">
04 <RowStyle BackColor="#E3EAEB" />
05 <Columns>
06 .....省略.....
07 </Columns>
08 <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
09 <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
10 </asp:GridView>
11
12 <asp:SqlDataSource ID="SqlDataSource1" runat="server"
13 ConnectionString="<%$ ConnectionStrings:testConnectionString1 %>"
14 SelectCommand="SELECT * FROM [test]"></asp:SqlDataSource>
15 <br />
16 <hr />
17
18 <br />
19 <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True"
20 AutoGenerateRows="False" CellPadding="4" DataKeyNames="id"
21 DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None"
22 Height="50px" Width="388px">
23 <PagerSettings Position="TopAndBottom" />
24 <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
25 <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
26 <Fields>
27 省略....
28 </Fields>
29 <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
30 </asp:DetailsView>
31 <asp:SqlDataSource ID="SqlDataSource2" runat="server"
32 ConnectionString="<%$ ConnectionStrings:testConnectionString1 %>"
33 SelectCommand="SELECT * FROM [test]">
34 </asp:SqlDataSource>
後置程式碼 for VB,如下:
02
03 DetailsView1.PageIndex = e.NewPageIndex
04 DetailsView1.DataSourceID = "SqlDataSource2"
05
06 '====================================
07 '-- 這個問題的主角是「DetailsView」,當他一筆一筆的換頁
08 '-- GridView的頁數必須隨之連動。
09 '====================================
10 '-- 運算子「\」表示除法裡面的商數
11 GridView1.PageIndex = (e.NewPageIndex \ 5)
12
13 GridView1.DataSourceID = "SqlDataSource1"
14 End Sub
完成了.............
啥?還不滿意????
你說「當GridView換頁的時候,底下的 DetailsView也要跟著連動????」
「DetailsView變換頁數時,GridView裡面的每一列資料光棒效果也要連動??」
這個解答就留給你來解囉?
其實作法一模一樣,不是嗎?
...... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務 (文魁出版,VB版 P8187 / C#版P09027)
.............................................................................................................. 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........
留言列表