GridView/ObjectDataSource和AspNetPager整合示例
前台代码:
<asp:GridView ID="viewIShow" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" AutoGenerateColumns="False" OnRowCommand="viewIShow_RowCommand" PageSize="2" OnPageIndexChanging="viewIShow_PageIndexChanging" OnDataBound="viewIShow_DataBound"> <Columns> <asp:BoundField DataField="title" HeaderText="名称" /> <asp:BoundField DataField="clicknum" HeaderText="播放次数" /> <asp:BoundField DataField="addtime" HeaderText="更新日期" /> <asp:TemplateField HeaderText="操作"> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CommandName="up" CommandArgument='<%#Eval("id") %>'>晋级</asp:LinkButton><asp:LinkButton ID="LinkButton2" runat="server" CommandName="down" CommandArgument='<%#Eval("id") %>'>降级</asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> <PagerTemplate> <table border="0" cellpadding="0" cellspacing="1" style="width: 100%; height: 100%;"> <tr style="height: 28px; padding-left: 20px;"> <td class="pages"> <webdiyer:AspNetPager ID="myPage" runat="server" OnPageChanged="myPage_PageChanged" ></webdiyer:AspNetPager> </td> </tr> </table> </PagerTemplate> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="AUDIOSYSTEM.Model.ishow" DeleteMethod="Delete" InsertMethod="Add" SelectMethod="GetList" TypeName="AUDIOSYSTEM.BLL.ishow" UpdateMethod="Update" OnSelected="ObjectDataSource1_Selected"> <SelectParameters> <asp:Parameter Name="type" Type="String" DefaultValue="week" /> <asp:ControlParameter ControlID="txtStartTime" DefaultValue="2000/01/01 00:00:00" Name="start" PropertyName="Text" Type="DateTime" /> <asp:ControlParameter ControlID="txtEndTime" Name="end" PropertyName="Text" Type="DateTime" DefaultValue="2500/01/01 00:00:00" /> </SelectParameters> <DeleteParameters> <asp:Parameter Name="videoId" Type="Int32" /> <asp:Parameter Name="type" Type="String" DefaultValue="week" /> </DeleteParameters> </asp:ObjectDataSource>
后台代码:
1 protected void myPage_PageChanged(object sender, EventArgs e) 2 { 3 GridViewRow pagerRow = viewIShow.BottomPagerRow; 4 AspNetPager myPage = (AspNetPager)pagerRow.Cells[0].FindControl("myPage"); 5 viewIShow.PageIndex = myPage.CurrentPageIndex - 1; 6 } 7 8 protected void viewIShow_DataBound(object sender, EventArgs e) 9 { 10 GridViewRow pagerRow = viewIShow.BottomPagerRow; 11 AspNetPager myPage = (AspNetPager)pagerRow.Cells[0].FindControl("myPage"); 12 13 GridView view = (GridView)sender; 14 myPage.PageSize = view.PageSize; 15 myPage.CurrentPageIndex = view.PageIndex +1; //GridView分页索引是从0开始,AspNetPager是从1开始的 16 } 17 18 protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e) 19 { 20 DataSet ds = (DataSet)e.ReturnValue; //ObjectDataSource查询方法返回什么类型就转成什么类型 21 22 GridViewRow pagerRow = viewIShow.BottomPagerRow; 23 AspNetPager myPage = (AspNetPager)pagerRow.Cells[0].FindControl("myPage"); 24 25 if (ds == null) 26 { 27 myPage.RecordCount = 0; 28 } 29 else 30 { 31 myPage.RecordCount = ds.Tables[0].Rows.Count; 32 } 33 }