ASP.Net/ADO.net Database/DataView

Материал из .Net Framework эксперт
Версия от 14:50, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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>