MethodExpression Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje způsob, jak zadat vlastní dotaz LINQ, který je definován v metodě.
public ref class MethodExpression : System::Web::UI::WebControls::Expressions::ParameterDataSourceExpression
public class MethodExpression : System.Web.UI.WebControls.Expressions.ParameterDataSourceExpression
type MethodExpression = class
inherit ParameterDataSourceExpression
Public Class MethodExpression
Inherits ParameterDataSourceExpression
- Dědičnost
Příklady
Následující příklad ukazuje, jak vyhledat pole ListPrice tabulky Products v databázi AdventureWorks pro produkty, které mají ceníkovou cenu 400 nebo více. Tento příklad ukazuje, jak vytvořit vlastní dotaz LINQ v metodě v kódu stránky a jak vyvolat metodu v ovládacím QueryExtender prvku.
Public Shared Function FilterStandardPrice(ByVal query As _
IQueryable(Of Product)) As IQueryable(Of Product)
Return From p In query _
Where p.ListPrice >= 400 _
Select p
End Function
public static IQueryable<Product>
FilterStandardPrice(IQueryable<Product> query)
{
return from p in query
where p.ListPrice >= 400
select p;
}
Následující příklad ukazuje, jak volat metodu na stránce.
<html>
<head runat="server">
<title>Custom Filter</title>
</head>
<body>
<form id="form1" runat="server">
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="AdventureworksDataContext" EntityTypeName=""
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender ID="QueryExtender1" runat="server"
TargetControlID="LinqDataSource1">
<asp:MethodExpression MethodName="FilterStandardPrice" >
</asp:MethodExpression>
</asp:QueryExtender>
<asp:GridView ID="GridView1" runat="server"
DataSourceID="LinqDataSource1"
DataKeyNames="ProductID"
</asp:GridView>
</form>
</body>
</html>
Poznámky
Ovládací QueryExtender prvek podporuje vlastní dotazy LINQ. Vlastní dotaz LINQ můžete definovat v metodě a pomocí MethodExpression možnosti filtru vyvolat dotaz v ovládacím QueryExtender prvku.
Metoda, která obsahuje vlastní dotaz LINQ, musí splňovat následující kritéria:
Metoda musí být statická (
Sharedv jazyce Visual Basic). Prvním parametrem IQueryable<T> musí být objekt nebo IEnumerable<T> objekt. Metoda může mít více než jeden parametr.Vrácená hodnota nemůže změnit IQueryable<T> dotazovaný typ ani IEnumerable<T> typ.
Vyhledá MethodExpression metodu, která obsahuje dotaz v následujícím pořadí:
TypeName Pokud je vlastnost zadána v ovládacím QueryExtender prvku, MethodExpression objekt hledá metodu v zadaném typu.
Pokud zdroj dat implementuje IDynamicDataSource, metoda hledá metodu pro typ kontextu (DataContext nebo ObjectContext objekt.)
Metoda hledá metodu v ovládacím prvku šablony, v základní třídě stránky nebo v uživatelském ovládacím prvku.
Třída MethodExpression se podobá třídě s tím rozdílem CustomExpression , že výraz metody je proveden v reakci na volání metody a vlastní výraz se spustí v reakci na událost.
Konstruktory
| Name | Description |
|---|---|
| MethodExpression() |
Inicializuje novou instanci MethodExpression třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Context |
HttpContext Získá instanci ovládacího prvku vlastníka. (Zděděno od DataSourceExpression) |
| DataSource |
Získá objekt zdroje dat, který je přidružen k ovládacímu prvku vlastník. (Zděděno od DataSourceExpression) |
| IgnoreIfNotFound |
Získá nebo nastaví hodnotu, která označuje, zda má být výraz ignorován. |
| IsTrackingViewState |
Získá hodnotu, která označuje, zda objekt výrazu zdroje dat sleduje změny stavu zobrazení. (Zděděno od DataSourceExpression) |
| MethodName |
Získá nebo nastaví název metody, která obsahuje vlastní dotaz LINQ. |
| Owner |
Získá ovládací prvek vlastníka. (Zděděno od DataSourceExpression) |
| Parameters |
Získá parametry, které jsou přidruženy k tomuto DataSourceExpression objektu. (Zděděno od ParameterDataSourceExpression) |
| TypeName |
Získá nebo nastaví třídu, jejíž metoda obsahuje vlastní dotaz. |
| ViewState |
Získá instanci StateBag třídy, která obsahuje aktuální zobrazení informace o stavu. (Zděděno od DataSourceExpression) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetQueryable(IQueryable) |
Vyřeší výraz pomocí zadaného IQueryable objektu. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| LoadViewState(Object) |
Načte stav hodnot v objektu ParameterDataSourceExpression , který musí být trvalý. (Zděděno od ParameterDataSourceExpression) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| SaveViewState() |
Uloží aktuální stav zobrazení objektu ParameterDataSourceExpression . (Zděděno od ParameterDataSourceExpression) |
| SetContext(Control, HttpContext, IQueryableDataSource) |
Spustí výraz pomocí zadaného ovládacího prvku vlastníka, kontextu a zdroje dat. (Zděděno od ParameterDataSourceExpression) |
| SetDirty() |
DataSourceExpression Označí objekt tak, aby byl jeho stav uložen ve stavu zobrazení. (Zděděno od DataSourceExpression) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| TrackViewState() |
Sleduje změny stavu zobrazení objektu ParameterDataSourceExpression tak, aby změny mohly být uloženy StateBag v objektu objektu. (Zděděno od ParameterDataSourceExpression) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IStateManager.IsTrackingViewState |
Při implementaci třídou získá hodnotu, která označuje, zda objekt výrazu zdroje dat sleduje změny stavu zobrazení. (Zděděno od DataSourceExpression) |
| IStateManager.LoadViewState(Object) |
Při implementaci třídou načte dříve uložený stav zobrazení objektu výrazu zdroje dat. (Zděděno od DataSourceExpression) |
| IStateManager.SaveViewState() |
Při implementaci třídou uloží aktuální stav zobrazení objektu DataSourceExpression . (Zděděno od DataSourceExpression) |
| IStateManager.TrackViewState() |
Při implementaci třídou sleduje změny stavu objektu DataSourceExpression tak, aby změny mohly být uloženy v StateBag objektu pro objekt výrazu zdroje dat. (Zděděno od DataSourceExpression) |