ASP.Net/ADO.net Database/DataView
Версия от 18:30, 26 мая 2010; (обсуждение)
Use a DataView as a way to filter and sort a DataTable
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DataViewTester" %> <!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" > <head id="Head1" runat="server">
<title>Using a DataView</title>
</head> <body>
<form id="form1" runat="server">
Choose sort field: <asp:DropDownList ID="drpSort" runat="server" > <asp:ListItem>Id</asp:ListItem> <asp:ListItem>FirstName</asp:ListItem> <asp:ListItem>LastName</asp:ListItem> <asp:ListItem>Phone</asp:ListItem> </asp:DropDownList>
Last Name Filter: <asp:TextBox ID="txtFilter" runat="server" /> <asp:Button ID="btnSubmit" runat="server" OnClick="btnViewData_Click" Text="View Data"/>
<asp:GridView id="grdCustomer" runat="server" />
</form>
</body> </html> File: Default.aspx.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 DataViewTester : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) grdCustomer.Visible = false; } protected void btnViewData_Click(object sender, EventArgs e) { DataTable table = MakeData(); DataView view = new DataView(table); view.Sort = drpSort.SelectedValue + " ASC"; if (txtFilter.Text.Length > 0) view.RowFilter = "LastName Like "" + txtFilter.Text + """; grdCustomer.Visible = true; grdCustomer.DataSource = view; grdCustomer.DataBind(); } private DataTable MakeData() { DataTable table = new DataTable(); DataColumn idCol = new DataColumn(); idCol.ColumnName = "Id"; idCol.DataType = typeof(Int32); idCol.AllowDBNull = false; idCol.Unique = true; idCol.AutoIncrement = true; DataColumn firstNameCol = new DataColumn("FirstName", typeof(string)); DataColumn lastNameCol = new DataColumn("LastName", typeof(string)); DataColumn phoneCol = new DataColumn("Phone", typeof(string)); table.Columns.Add(idCol); table.Columns.Add(firstNameCol); table.Columns.Add(lastNameCol); table.Columns.Add(phoneCol); DataRow r1 = table.NewRow(); r1[1] = "A"; r1[2] = "a"; r1[3] = "123-4567"; table.Rows.Add(r1); DataRow r2 = table.NewRow(); r2["FirstName"] = "B"; r2["LastName"] = "b"; r2["Phone"] = "564-7823"; table.Rows.Add(r2); DataRow r3 = table.NewRow(); r3["FirstName"] = "C"; r3["LastName"] = "c"; r3["Phone"] = "253-6383"; table.Rows.Add(r3); DataRow r4 = table.NewRow(); r4["FirstName"] = "D"; r4["LastName"] = "d"; r4["Phone"] = "456-1267"; table.Rows.Add(r4); return table; }
}
</source>