İngilizce dilinde oku

Aracılığıyla paylaş


ObjectDataSourceFilteringEventHandler Temsilci

Tanım

Denetimin olayını ObjectDataSource işleyecek Filtering yöntemi temsil eder.

C#
public delegate void ObjectDataSourceFilteringEventHandler(object sender, ObjectDataSourceFilteringEventArgs e);

Parametreler

sender
Object

Olayın kaynağı olan ObjectDataSource.

Örnekler

Bu bölüm iki kod örneği içerir. İlk kod örneği, orta katman iş nesnesinden veri almak için bir ObjectDataSource denetim kullanarak filtrelenmiş verilerin nasıl görüntüleneceğini ve ardından sonuçları görüntülemek için bir GridView denetimin nasıl görüntüleneceğini gösterir. İkinci kod örneği, ilk kod örneği tarafından kullanılan bir orta katman iş nesnesi örneği sağlar.

Aşağıdaki kod örneği, orta katman iş nesnesinden veri almak için bir ObjectDataSource denetim kullanarak filtrelenmiş verilerin nasıl görüntüleneceğini ve ardından sonuçları görüntülemek için bir GridView denetimin nasıl görüntüleneceğini gösterir. Denetim ObjectDataSource yalnızca verileri alan yöntem verileri veya DataSetDataTable nesnesi olarak aldığında verileri filtreleyebilir. Bu nedenle özelliği, SelectMethod verileri veya DataTable nesnesi olarak alan bir DataSet iş nesnesi yöntemini tanımlar.

Kod örneği bir denetim, denetim TextBoxGridView , ObjectDataSource denetim ve Gönder düğmesinden oluşur. Denetim, TextBox varsayılan olarak Northwind Traders'daki çalışanlardan birinin adıyla doldurulur. Denetim, GridView içindeki adıyla TextBoxtanımlanan çalışan hakkındaki bilgileri görüntüler. Başka bir çalışanın verilerini almak için denetime TextBox çalışanın tam adını yazın ve gönder düğmesine tıklayın.

FilterExpression özelliği, özelliği tarafından belirtilen yöntemi tarafından alınan verileri filtrelemek için kullanılan bir ifade belirtirSelectMethod. Koleksiyonda FilterParameters bulunan parametrelere göre değerlendirilen parametre yer tutucularını kullanır. Bu örnekte, parametrenin türü boşluk içerebilen bir dize türü olduğundan, parametre yer tutucusu tek tırnak işareti (') içine alınır. Parametrenin türü sayısal veya tarihse, tırnak işareti gerekmez. KoleksiyonFilterParameters, denetime TextBox bağlı bir nesne olan bir FormParameter parametre içerir.

Denetimde ad belirtilmezse, aramanın TextBoxParameterValues başarılı olması için koleksiyona yeni bir parametre eklenir.

ASP.NET (C#)
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    protected void ObjectDataSource1_Filtering(object sender, ObjectDataSourceFilteringEventArgs e)
    {
        if (Textbox1.Text == "")
        {
            e.ParameterValues.Clear();
            e.ParameterValues.Add("FullName", "Nancy Davolio");
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <p>Show all users with the following name.</p>

        <asp:textbox id="Textbox1" runat="server" text="Nancy Davolio" />

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1"
          autogeneratecolumns="False">
          <columns>
            <asp:boundfield headertext="ID" datafield="EmpID" />
            <asp:boundfield headertext="Name" datafield="FullName" />
            <asp:boundfield headertext="Street Address" datafield="Address" />
          </columns>
        </asp:gridview>

        <!-- Security Note: The ObjectDataSource uses a FormParameter,
             Security Note: which does not perform validation of input from the client. -->

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployeesAsDataSet"
          typename="Samples.AspNet.CS.EmployeeLogic"
          filterexpression="FullName='{0}'" OnFiltering="ObjectDataSource1_Filtering">
            <filterparameters>
              <asp:formparameter name="FullName" formfield="Textbox1" defaultvalue="Nancy Davolio" />
            </filterparameters>
        </asp:objectdatasource>

        <p><asp:button id="Button1" runat="server" text="Search" /></p>

    </form>
  </body>
</html>

Aşağıdaki kod örneği, önceki kod örneğinin kullandığı bir orta katman iş nesnesi örneği sağlar. Kod örneği iki temel sınıftan oluşur: EmployeeLogic ve NorthwindEmployee. EmployeeLogic sınıfı iş mantığını kapsüller ve NorthwindEmployee sınıfı yalnızca veri katmanından verileri yüklemek ve kalıcı hale getirmek için gereken temel işlevleri içeren bir model sınıfıdır. Kolaylık olması için sınıfı, EmployeeLogic verileri bir veri katmanından almak yerine statik bir veri kümesi oluşturur. Tam bir çalışma örneği için, sağlanan Web Forms kod örnekleriyle bu sınıfları derlemeniz ve kullanmanız gerekir.

C#
namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Data;
using System.Web.UI.WebControls;
  //
  // EmployeeLogic is a stateless business object that encapsulates 
  // the operations you can perform on a NorthwindEmployee object.
  //
  public class EmployeeLogic {

    // Returns a collection of NorthwindEmployee objects.
    public static ICollection GetAllEmployees () {
      ArrayList data = new ArrayList();
           
      data.Add(new NorthwindEmployee(1,"Nancy","Davolio","507 - 20th Ave. E. Apt. 2A"));
      data.Add(new NorthwindEmployee(2,"Andrew","Fuller","908 W. Capital Way"));
      data.Add(new NorthwindEmployee(3,"Janet","Leverling","722 Moss Bay Blvd."));
      data.Add(new NorthwindEmployee(4,"Margaret","Peacock","4110 Old Redmond Rd."));
      data.Add(new NorthwindEmployee(5,"Steven","Buchanan","14 Garrett Hill"));
      data.Add(new NorthwindEmployee(6,"Michael","Suyama","Coventry House Miner Rd."));
      data.Add(new NorthwindEmployee(7,"Robert","King","Edgeham Hollow Winchester Way"));
      
      return data;
    }
    
    public static NorthwindEmployee GetEmployee(object anID) {
      ArrayList data = GetAllEmployees() as ArrayList;     
      int empID = Int32.Parse(anID.ToString());      
      return data[empID] as NorthwindEmployee;
    }

    // 
    // To support basic filtering, the employees cannot
    // be returned as an array of objects, rather as a 
    // DataSet of the raw data values. 
    public static DataSet GetAllEmployeesAsDataSet () {
      ICollection employees = GetAllEmployees();
      
      DataSet ds = new DataSet("Table");
      
      // Create the schema of the DataTable.
      DataTable dt = new DataTable();
      DataColumn dc;
      dc = new DataColumn("EmpID",   typeof(int));    dt.Columns.Add(dc);
      dc = new DataColumn("FullName",typeof(string)); dt.Columns.Add(dc);
      dc = new DataColumn("Address", typeof(string)); dt.Columns.Add(dc);
      
      // Add rows to the DataTable.
      DataRow row;
            
      foreach (NorthwindEmployee ne in employees) {                
        row = dt.NewRow();
        row["EmpID"]    = ne.EmpID;
        row["FullName"] = ne.FullName;
        row["Address"]  = ne.Address;
        dt.Rows.Add(row);
      } 
      // Add the complete DataTable to the DataSet.
      ds.Tables.Add(dt);
      
      return ds;
    }    
  }

  public class NorthwindEmployee {

    public NorthwindEmployee (int anID, 
                              string aFirstName,
                              string aLastName,
                              string anAddress) {
      ID = anID;
      firstName = aFirstName;
      lastName = aLastName;   
      address = anAddress;
    }

    private object ID;
    public string EmpID {
      get { return ID.ToString();  }
    }

    private string lastName;
    public string LastName {
      get { return lastName; }
      set { lastName = value; }
    }

    private string firstName;
    public string FirstName {
      get { return firstName; }
      set { firstName = value;  }
    }
    
    public string FullName {
      get { return FirstName  + " " +  LastName; }
    }
    
    private string address;
    public string Address {
      get { return address; }
      set { address = value;  }
    }    
  }
}

Açıklamalar

Bir ObjectDataSourceFilteringEventHandler temsilci oluşturduğunuzda, olayı işleyecek yöntemi tanımlarsınız. Olayı olay işleyicinizle ilişkilendirmek için olaya temsilcinin bir örneğini ekleyin. Olay her gerçekleştiğinde, olay işleyici (siz temsilciyi kaldırmadığınız sürece) çağrılır. Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Uzantı Metotları

GetMethodInfo(Delegate)

Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Ayrıca bkz.