【转贴】ListView控件学习系列3-ListView选择,排序,分页
作者:Lance
原贴地址:http://www.cnblogs.com/nuaalfm/archive/2008/09/02/1282437.html
目录:
ListView控件学习系列1-了解ListView控件
ListView控件学习系列2-编辑ListView
ListView控件学习系列3-ListView选择,排序,分页
ListView使用技巧
源码下载
选择例子 前端代码:
前端代码 <asp:ListView ID="ListView1" runat="server" onselectedindexchanging="ListView1_SelectedIndexChanging"> <LayoutTemplate> <table id="Table1" runat="server" border="0" style=""> <tr runat="server" id="itemPlaceholder" /> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <%#Eval("ID") %> </td> <td> <asp:Label ID="idLabel" runat="server" Text='<%# Eval("name") %>' /> </td> <td> <asp:Label ID="xLabel" runat="server" Text='<%# Eval("age") %>' /> </td> <td> <asp:Button ID="SelectButton" CommandName="Select" runat="server" Text="选择" /> </td> </tr> </ItemTemplate> <SelectedItemTemplate> <tr style="background-color:Blue"> <td> <%#Eval("ID") %> </td> <td> <asp:Label ID="idLabel" runat="server" Text='<%# Eval("name") %>' /> </td> <td> <asp:Label ID="xLabel" runat="server" Text='<%# Eval("age") %>' /> </td> <td> <asp:Button ID="SelectButton" CommandName="Select" runat="server" Text="选择" /> </td> </tr> </SelectedItemTemplate> </asp:ListView>
后台代码:
后台代码 protected void ListView1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e) { ListView1.SelectedIndex = e.NewSelectedIndex; Bind(); }
排序前端代码:
前端 代码 <asp:ListView ID="ListView1" runat="server" OnSorting="ListView1_Sorting"> <LayoutTemplate> <table id="Table1" runat="server" border="0" style=""> <tr> <td> <asp:LinkButton ID="LinkButton1" CommandArgument="ID" runat="server" CommandName="Sort">ID</asp:LinkButton> </td> <td> <asp:LinkButton ID="LinkButton2" CommandArgument="Name" runat="server" CommandName="Sort">Name</asp:LinkButton> </td> <td> <asp:LinkButton ID="LinkButton3" CommandArgument="Age" runat="server" CommandName="Sort">Age</asp:LinkButton> </td> </tr> <tr runat="server" id="itemPlaceholder" /> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <%#Eval("ID") %> </td> <td> <%# Eval("name") %> </td> <td> <%# Eval("age") %> </td> </tr> </ItemTemplate> </asp:ListView>
排序模拟数据提供代码:
排序模拟数据提供代码 namespace Data { /// <summary> ///DataAccess 的摘要说明 /// </summary> public class DataAccess { public List<Employee> List; public DataAccess() { List = new List<Employee>(); Employee e1 = new Employee { ID = 1, Name = "A", Age = 10 }; Employee e2 = new Employee { ID = 3, Name = "M", Age = 30 }; Employee e3 = new Employee { ID = 2, Name = "B", Age = 40 }; Employee e4 = new Employee { ID = 4, Name = "S", Age = 19 }; Employee e5 = new Employee { ID = 6, Name = "X", Age = 18 }; Employee e6 = new Employee { ID = 5, Name = "W", Age = 20 }; List.Add(e1); List.Add(e2); List.Add(e3); List.Add(e4); List.Add(e5); List.Add(e6); } public void SortID( string sortDirection) { if (sortDirection == "ASC") { List.Sort(new EmployeeIDAscCompare()); } else { List.Sort(new EmployeeIDDescCompare()); } } } class EmployeeIDAscCompare:IComparer<Employee> { #region IComparer<Employee> 成员 public int Compare(Employee x, Employee y) { return x.ID.CompareTo(y.ID); } #endregion } class EmployeeIDDescCompare : IComparer<Employee> { #region IComparer<Employee> 成员 public int Compare(Employee x, Employee y) { return y.ID.CompareTo(x.ID); } #endregion } public class Employee { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public int Sex { get; set; } } }
排序后台代码:
后台代码public partial class Default3 : System.Web.UI.Page { DataAccess da; protected void Page_Load(object sender, EventArgs e) { if (Session["da"] == null) { da = new DataAccess(); Session["da"] = da; } else { da = Session["da"] as DataAccess; } if (!IsPostBack) { Bind(); } } private void Bind() { ListView1.DataSource = da.List; ListView1.DataBind(); } protected void ListView1_Sorting(object sender, ListViewSortEventArgs e) { if (String.IsNullOrEmpty(e.SortExpression)) { return; } string direction = ""; if (ViewState["SortDirection"] != null) direction = ViewState["SortDirection"].ToString(); if (direction == "ASC") direction = "DESC"; else direction = "ASC"; ViewState["SortDirection"] = direction; da.SortID(direction); Bind(); } }
分页例子: 前端代码:
前端代码 <asp:ListView ID="ListView1" runat="server" OnPagePropertiesChanging="ListView1_PagePropertiesChanging1"> <LayoutTemplate> <table id="Table1" runat="server" border="0" style=""> <tr runat="server" id="itemPlaceholder" /> </table> </LayoutTemplate> <ItemTemplate> <tr> <td> <%#Eval("ID") %> </td> <td> <%# Eval("name") %> </td> <td> <%# Eval("age") %> </td> </tr> </ItemTemplate> </asp:ListView> </div> <div style="padding: 10px; text-align: right;"> <asp:DataPager ID="Pager" runat="server" PagedControlID="ListView1" PageSize="2"> <Fields> <asp:NumericPagerField ButtonCount="10" NextPageText="" PreviousPageText="" /> <asp:NextPreviousPagerField FirstPageText="First" LastPageText="Last" NextPageText="Next" PreviousPageText="Previous" /> </Fields> </asp:DataPager> </div>
后台代码:
后台代码 protected void ListView1_PagePropertiesChanging1(object sender, PagePropertiesChangingEventArgs e) { Pager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false); Bind(); }
转载于:https://www.cnblogs.com/binyong/archive/2009/05/10/1453618.html
相关资源:数据结构—成绩单生成器