ASP.NET GridView分页及排序 源代码
尐孑 2008-07-15 02:57:16 //.cs 文件部分代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class BasicInfo_Product : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//绑定数据
strQuery = "SELECT * FROM JXNF_PRODUCT ";
DataView dv = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataView(strQuery);
dv.Sort = "PRODUCTID DESC";
GridViewMain.PageIndex = Convert.ToInt32(this.Session["page"]);
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
this.ViewState["sort"] = "PRODUCTID";
this.ViewState["sortDerect"] = "DESC";
this.ViewState["strSql"] = strQuery;
}
}
protected void LinkButtongo_Click(object sender, EventArgs e)
{
//跳转
String strQuery = this.ViewState["strSql"].ToString();
TextBox textBoxpage = (TextBox)GridViewMain.BottomPagerRow.Cells[0].FindControl("TextBoxpage");
if (textBoxpage.Text == "")
{
GridViewMain.PageIndex = 0;
}
else
{
try
{
GridViewMain.PageIndex = Convert.ToInt32(textBoxpage.Text) - 1;
if (GridViewMain.PageIndex < 0)
{
GridViewMain.PageIndex = 0;
}
}
catch
{
GridViewMain.PageIndex = 0; } }
this.Session["page"] = GridViewMain.PageIndex;
DataSet dataSet = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataSet(strQuery);
DataView dv = new DataView(dataSet.Tables[0]);
dv.Sort=this.ViewState["sort"].ToString()+" "+this.ViewState["sortDerect"].ToString();
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
if (GridViewMain.PageIndex == 0)
{
LinkButton lb = (LinkButton)GridViewMain.BottomPagerRow.Cells[0].FindControl("LinkButtonupper");
lb.Visible = false;
}
}
protected void LinkButtonfirst_Click(object sender, EventArgs e)
{
//首页
String strSql = this.ViewState["strSql"].ToString();
GridViewMain.PageIndex = 0;
this.Session["page"] = GridViewMain.PageIndex;
DataSet dataSet = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataSet(strSql);
DataView dv = new DataView(dataSet.Tables[0]);
dv.Sort=this.ViewState["sort"].ToString()+" "+this.ViewState["sortDerect"].ToString();
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
LinkButton lb = (LinkButton)GridViewMain.BottomPagerRow.Cells[0].FindControl("LinkButtonupper");
lb.Visible = false;
}
protected void LinkButtonupper_Click(object sender, EventArgs e)
{
//上一页
if (GridViewMain.PageIndex > 0)
{
GridViewMain.PageIndex--;
this.Session["page"] = GridViewMain.PageIndex;
String strSql = this.ViewState["strSql"].ToString();
DataSet dataSet = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataSet(strSql);
DataView dv = new DataView(dataSet.Tables[0]);
dv.Sort=this.ViewState["sort"].ToString()+" "+this.ViewState["sortDerect"].ToString();
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
if (GridViewMain.PageIndex == 0)
{
LinkButton lb = (LinkButton)GridViewMain.BottomPagerRow.Cells[0].FindControl("LinkButtonupper");
lb.Visible = false;
}
}
}
protected void LinkButtonnext_Click(object sender, EventArgs e)
{
//下一页
if (GridViewMain.PageIndex < GridViewMain.PageCount - 1)
{
GridViewMain.PageIndex++;
this.Session["page"] = GridViewMain.PageIndex;
String strSql = this.ViewState["strSql"].ToString();
DataSet dataSet = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataSet(strSql);
DataView dv = new DataView(dataSet.Tables[0]);
dv.Sort = this.ViewState["sort"].ToString() + " " + this.ViewState["sortDerect"].ToString();
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
}
}
protected void LinkButtonend_Click(object sender, EventArgs e)
{
//最后一页
GridViewMain.PageIndex = GridViewMain.PageCount - 1;
this.Session["page"] = GridViewMain.PageIndex;
String strSql = this.ViewState["strSql"].ToString();
DataSet dataSet = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataSet(strSql);
DataView dv = new DataView(dataSet.Tables[0]);
dv.Sort = this.ViewState["sort"].ToString() + " " + this.ViewState["sortDerect"].ToString();
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
LinkButton lb = (LinkButton)GridViewMain.BottomPagerRow.Cells[0].FindControl("LinkButtonnext");
lb.Visible = false;
}
protected void GridViewMain_Sorting(object sender, GridViewSortEventArgs e)
{
//排序
string strQuery = this.ViewState["strSql"].ToString();
string sort = e.SortExpression;
string sortDerect = this.ViewState["sortDerect"].ToString();
if (sortDerect == "ASC") sortDerect = "DESC";
else sortDerect = "ASC";
this.ViewState["sort"] = sort;
this.ViewState["sortDerect"] = sortDerect;
DataView dv = PlatForm.NamedObjects.NonTransactionDatabaseAgent.ExecuteDataView(strQuery);
dv.Sort = sort + " " + sortDerect;
GridViewMain.DataSource = dv;
GridViewMain.DataBind();
}
}
<%-- .aspx文件部分代码--%>
<asp:GridView ID="GridViewMain" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="20" Width="100%" Height="1px" AllowSorting="True" OnSorting="GridViewMain_Sorting"> <Columns>
<asp:TemplateField HeaderText="订单编号" SortExpression="ORDERID"><%-- 绑定LinkButton控件--%>
<ItemTemplate>
<asp:LinkButton ID="link" runat="server" Text='<%# Bind("ORDERID") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TYPE" HeaderText="类型" SortExpression="TYPE" />
</Columns>
<PagerTemplate>
每页
<asp:Label ID="Label2" runat="server" Text="<%# GridViewMain.PageSize %>"></asp:Label>行 第
<asp:Label ID="Label3" runat="server" Text="<%# GridViewMain.PageIndex+1 %>"></asp:Label>页 共<asp:Label ID="Label4" runat="server" Text="<%# GridViewMain.PageCount %>"></asp:Label>页 第
<asp:TextBox ID="TextBoxpage" runat="server" BorderStyle="None" Width="15px" Wrap="False"></asp:TextBox>页
<asp:LinkButton ID="LinkButtongo" runat="server" OnClick="LinkButtongo_Click">跳转</asp:LinkButton>
<asp:LinkButton ID="LinkButtonfirst" runat="server" OnClick="LinkButtonfirst_Click">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonupper" runat="server" OnClick="LinkButtonupper_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonnext" runat="server" OnClick="LinkButtonnext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonend" runat="server" OnClick="LinkButtonend_Click">尾页</asp:LinkButton>
</PagerTemplate>
</asp:GridView>