您的位置:首页 > 编程语言 > ASP

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

2015-11-17 14:00 901 查看
使用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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: