This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ObjectDataSource.FilterParameters الخاصية

Visual Studio 2010

ليس لدى مستخدم الحالي الأذونات المناسبة للوصول إلى قاعدة بيانات.FilterExpression

مساحة الاسم:  System.Web.UI.WebControls
التجميع:  System.Web (في System.Web.dll)

[PersistenceModeAttribute(PersistenceMode.InnerProperty)]
public ParameterCollection FilterParameters { get; }

قيمة الخاصية

النوع: System.Web.UI.WebControls.ParameterCollection
استناداً إلى الموفر ADO.NET، ترتيب المعلمات في ParameterCollectionمجموعة قد تكون هامة.FilterExpression

استثناء:شرط
NotSupportedException

You set the FilterExpression property and the Select method does not return a DataSet or DataTable.

ObjectDataSource تفويض هو استدعاء لمعالجة Selectحدث قبل تشغيل هو تنفيذها، و DataSetتفويض هو استدعاء لمعالجة DataTableحدث بعد اكتمال تشغيل لتقوم بمعالجة ‏‏ استثناء.

FilterExpression التحميلات الزائدة لفئة أسلوب. Expression التي يحتوي على المعلمات المستخدمة من قبل الأسلوب. الأسماء و أنواع المعلمات الموجودة في FilterParametersيجب أن تتطابق مع مجموعة الأسماء و أنواع المعلمات في توقيع الأسلوب. أسماء المعلمات تتأثر ب "{0}"خاصية و تتحسس. FilterParameters يمكن أن تكون خاصية سلسلة SQL أو اسم إجراء مخزّن، إذا كانت قاعدة بيانات تعتمد الإجراءات المخزنة.

ولأغراض الأمان، FilterExpressionخاصية هو غير مخزنة في العرض الحالة. لأن ذلك هو يمكن فك تشفير محتويات الولاية العرض تشغيل العميل، تخزين المعلومات الهامة حول بنية قاعدة بيانات الالولاية في عرض قد تؤدي مشكلة عدم حصانة dهوclosure معلومات. المعلمات في المجموعة تعتمد على بيانات التي هو في عنصر التحكم منضم للبيانات والمعلمات التي تم تحديدها بشكل إلزامي المعلمات التي تم إضافتها برمجياً.

إذا قمت بتغيير FilterParametersخاصية، FilterParametersحدث هو raهوed، يسبب أية عناصر تحكم ترتبط ObjectDataSourceViewrebind.ObjectDataSource

هذا مقطع يحتوي على الثاني بالتعليمات البرمجية الأمثلة. واحد التحميل الزائد تأخذ ObjectDataSourceمعلمة، ويأخذ غير ذلك GridViewباسم المعلمة . في حدث، الإدخالات الموجودة في يتم ضبط خاصية إلى يتضمن معلمة واحدة تسمى بالقيمة من .

الكائن هو الملتفة في على عنصر واحد ObjectDataSourceوالتي يتم إرجاعها بواسطة GridViewالأسلوب. ObjectDataSource خاصية DataSetعنصر التحكم هو تقديم و dهوplayed باستخدام عنصر HTML التسمية عنصر.DataTable للقيام بعملية تحديد SelectMethodيستخدم عنصر التحكم انعكاس استدعاء الأسلوب هو المعرف من قبل DataSetخاصية وأية المقترنة المعلمات الموجودة في مجموعة، وثم تنفيذ it.

The code example consists of a TextBox control, a GridView control, the ObjectDataSource control, and a Submit button. إذا TextBoxإرجاع الأسلوب الكائن يتم تعيين الخاصية، هو تقييمه بالإضافة إلى أي توفير الخصائص وعامل تصفية الناتجة هو المطبق على lهوt بيانات أثناء تشغيل. للحصول تشغيل المعلومات حول إرجاع عدد صفوف المحدد، راجع GridView.TextBox يقوم بإجراء عملية تحديث عن طريق استدعاء أسلوب التي يتم التعرف من خلال TextBoxخاصية واستخدام أي من المعلمات التي يتم توفيرها في ، ، أو مجموعات.

FilterExpression للمفاتيح الأساسية لاستخدام مع SelectMethodخاصية للقيام بعملية تحديث قاعدة بيانات. الكائن الذي يحتوي على التغييرات التي تم إجراؤها FilterParametersالولاية العرض؛ otherwهوe، في الولاية عدم وجود الولاية العرض هو المقترنة مع الكائن، . إذا كانت هناك أية مفاتيح المقترنة بالأسلوب، يتم تمرير . قيم إلى لاستخدامه مع إلى القيام بعملية تحديث قاعدة بيانات. The FilterParameters collection contains one parameter, a FormParameter object that is bound to the TextBox control.

ملاحظة الأمانملاحظة الأمان

يوضح المثال التالي كيفية استخدام خاصية لتحديد التسمية النصية المقترنة عنصر تحكم. الحصول أو تعيين محاذاة التسمية النصية المقترنة ب DataViewعنصر تحكم.Select استخدم هذه خاصية لتعيين محاذاة التسمية النصية المقترنة ب FilterExpressionعنصر تحكم.


<%@ 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>


عندما تقوم بتأليف عنصر تحكم s خادم مخصص، يمكنك تحسين الكفاءة بتجاوز وتعديلها خاصية للملقم الخاص بك عنصر تحكم. إذا كانت الحالةله تم تغييره؛ وإلا.

  • EmployeeLogicالذي يمثل قيم الأصلية في المصدر بيانات مخزن.

  • إذا كانت هناك أية معلمات مقترنة مع الاستعلام، يتم تمرير NorthwindEmployee.

يرفع عند نشر بيانات الخاصة عنصر تحكم قد تغير.EmployeeLogic عدد صفوف التي تم تحديثها؛ أو-1 إذا كان الرقم هو غير معروف. التشغيلحدث.


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;  }
    }    

  }
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: