ASPxGridView自定义分页,点击标题排序

来源:互联网 发布:java socket 怎么运行 编辑:程序博客网 时间:2024/05/18 00:36

使用ASPxGridView和ASPxPager,进行自定义分页。

前台代码:

         <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" Width="720" ClientInstanceName="ASPxGridView1" OnBeforeColumnSortingGrouping="ASPxGridView1_BeforeColumnSortingGrouping" >
                        <SettingsPager Visible="False" Mode="ShowAllRecords"/>
                        <SettingsText EmptyDataRow="没有数据"></SettingsText>
                        <SettingsLoadingPanel Text="正在加载..."></SettingsLoadingPanel>
                        <Settings ShowVerticalScrollBar="true" ShowHorizontalScrollBar="true" ShowFilterRow="True" ShowGroupPanel="True" ShowFilterRowMenu="True" ShowHeaderFilterButton="True" ShowFooter="true" />
                        <Styles>
                            <Header ImageSpacing="5px" SortingImageSpacing="5px" HorizontalAlign="Center"/>
                            <LoadingPanel ImageSpacing="10px"/>
                            <AlternatingRow Enabled="True" />
                        </Styles>
                        <Columns>
                            <dx:GridViewDataTextColumn Caption="序号" FieldName="row_no" VisibleIndex="0" FixedStyle="Left" CellStyle-BackColor="#ffffd6" />  
                            <dx:GridViewDataTextColumn Caption="Delivery No" FieldName="delivery_no" VisibleIndex="1" FixedStyle="Left" CellStyle-BackColor="#ffffd6" />  
                            <dx:GridViewDataTextColumn Caption="收货仓" FieldName="wh_name" VisibleIndex="2"/>  
                            <dx:GridViewDataTextColumn Caption="产品大类" FieldName="product_type" VisibleIndex="3"/>  
                            <dx:GridViewDataColumn Caption="Details" VisibleIndex="4">
                                <DataItemTemplate>
                                    <a href="default2.aspx?AuctionID=<%# Eval("order_no")%>" target="_blank" >跟踪</a>
                                </DataItemTemplate>
                            </dx:GridViewDataColumn>
                        </Columns>
                        <TotalSummary>
                             <dx:ASPxSummaryItem FieldName="order_no" SummaryType="Count" DisplayFormat="行计数{0}"/>
                        </TotalSummary>

                    </dx:ASPxGridView>
                    <dx:ASPxPager ID="ASPxPager1" runat="server" OnPageIndexChanged="ASPxPager1_PageIndexChanged">
                        <Summary AllPagesText="分页{0} - {1} (总{2}条)" Text="当前第{0}页,共{1}页 (共{2}条)" />
                        <LastPageButton Visible="True">  
                            </LastPageButton>  
                        <FirstPageButton Visible="True">  
                            </FirstPageButton>  
                    </dx:ASPxPager>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="ASPxPager1" EventName="PageIndexChanged" />
                </Triggers>
            </asp:UpdatePanel>

后台代码:

      protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData(1);
            }
        }

        private void BindData(int cur_page)
        {
            string sort = sSortDirection;
            if (string.IsNullOrEmpty(sort))
                sort = "asc";

            DataSet ds = ExecuteSqlGetDS("exec p_get_list @page_size=" + ASPxPager1.ItemsPerPage + ",@page_number=" + (cur_page) + ",@query_value=N'3||1',@sort=N'" + SortFieldName + " " + sort + "'");
            if (ds != null && ds.Tables.Count > 0)
            {
                ASPxGridView1.DataSource = ds.Tables[0];
                ASPxGridView1.DataBind();
                ASPxPager1.ItemCount = (int)ds.Tables[0].Rows[0][0];
            }
            else
            {
                ASPxPager1.ItemCount = 0;
            }
        }

        protected void ASPxGridView1_BeforeColumnSortingGrouping(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewBeforeColumnGroupingSortingEventArgs e)
        {
            switch (e.Column.SortOrder)
            {
                case DevExpress.Data.ColumnSortOrder.Ascending:
                    sSortDirection = "asc";
                    break;
                case DevExpress.Data.ColumnSortOrder.Descending:
                    sSortDirection = "desc";
                    break;
            }

            SortFieldName = e.Column.FieldName;
            BindData(1);
        }

        protected void ASPxPager1_PageIndexChanged(object sender, EventArgs e)
        {
            BindData(ASPxPager1.PageIndex + 1);
        }

        protected string SortFieldName
        {
            get
            {
                if (Session["SortFieldName"] == null)
                    Session["SortFieldName"] = "delivery_no";
                return Session["SortFieldName"].ToString();
            }
            set
            {
                Session["SortFieldName"] = value;
            }
        }

        protected string sSortDirection
        {
            get
            {
                if (Session["SortDirection"] == null)
                    Session["SortDirection"] = "asc";
                return Session["SortDirection"].ToString();
            }
            set
            {
                Session["SortDirection"] = value;
            }
        }

0 0
原创粉丝点击