default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RepeaterDemoTest._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <%@ Import Namespace="TestViewStateDemo.fh" %> <head id="Head1" runat="server"> <title>无标题页</title> </head> <body> <form id="Form1" method="post" runat="server"> <table width="100%" border="1" bordercolor="#330033" bordercolordark="#999933" bordercolorlight="black"> <tr width="100%"> <td colspan="20" align="center"> <font color="blue" size="12">Repeater实现双向排序功能</font> </td> </tr> <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="CompareTestEntity"> <HeaderTemplate> <tr> <td align="center" class="cssStrong"> <asp:LinkButton ID="RegionSalesManID" runat="server" Text="区域销售主任代码" CommandName="RegionSalesManID"></asp:LinkButton> </td> <td class="cssStrong"> <asp:LinkButton ID="AreaCode" runat="server" Text="地区代码" CommandName="AreaCode"></asp:LinkButton> </td> <td class="cssStrong"> <asp:LinkButton ID="AreaName" runat="server" Text="地区名称" CommandName="AreaName"></asp:LinkButton> </td> <td class="cssStrong"> <asp:LinkButton ID="AreaSalesManID" runat="server" Text="地区销售主任代码" CommandName="AreaSalesManID"></asp:LinkButton> </td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td> <%# ((System.Data.DataRowView)Container.DataItem)["RegionSalesManID"]%> </td> <td> <%# ((System.Data.DataRowView)Container.DataItem)["AreaCode"]%> </td> <td> <%# ((System.Data.DataRowView)Container.DataItem)["AreaName"]%> </td> <td> <%# ((System.Data.DataRowView)Container.DataItem)["AreaSalesManID"]%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>
?
default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections;
using System.Data.SqlClient;
using TestViewStateDemo.fh;
using System.Reflection;
namespace RepeaterDemoTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindRepeater();
}
}
private DataView GetData
{
get
{
return Cache["_data"] as DataView;
}
set
{
if (Cache["_data"] == null)
Cache["_data"] = value;
}
}
private void BindRepeater()
{
DataTable dt = new DataTable("test");
DataColumn dc1 = new DataColumn("RegionSalesManID", typeof(System.String));
DataColumn dc2 = new DataColumn("AreaCode", typeof(System.String));
DataColumn dc3 = new DataColumn("AreaName", typeof(System.String));
DataColumn dc4 = new DataColumn("AreaSalesManID", typeof(System.String));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
DataRow dr1 = dt.NewRow();
dr1["RegionSalesManID"] = "aabbcc123";
dr1["AreaCode"] = "abc123";
dr1["AreaName"] = "FENGHUAN1";
dr1["AreaSalesManID"] = "ABC123";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["RegionSalesManID"] = "aabbcc124";
dr2["AreaCode"] = "abc124";
dr2["AreaName"] = "FENGHUAN2";
dr2["AreaSalesManID"] = "ABC124";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["RegionSalesManID"] = "aabbcc125";
dr3["AreaCode"] = "abc125";
dr3["AreaName"] = "FENGHUAN3";
dr3["AreaSalesManID"] = "ABC125";
dt.Rows.Add(dr3);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
GetData = ds.Tables[0].DefaultView;
Repeater1.DataSource = ds;
Repeater1.DataBind();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
if (ViewState[e.CommandName.Trim()] == null)
{
ViewState[e.CommandName.Trim()] = "ASC";
}
else
{
if (ViewState[e.CommandName.Trim()].ToString().Trim() == "ASC")
{
ViewState[e.CommandName.Trim()] = "DESC";
}
else
{
ViewState[e.CommandName.Trim()] = "ASC";
}
}
DataView dv = GetData;
dv.Sort = e.CommandName.ToString().Trim() + " " + ViewState[e.CommandName.Trim()].ToString().Trim();
Repeater1.DataSource = dv;
Repeater1.DataBind();
}
}
}
}
?