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. Můžete definovat vlastní dotaz LINQ v metodě a použít MethodExpression možnost filtru k vyvolání dotazu 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á (
Shared
v jazyce Visual Basic). Prvním parametrem IQueryable<T> musí být objekt nebo IEnumerable<T> . Metoda může mít více než jeden parametr.Vrácená hodnota nemůže změnit IQueryable<T> typ nebo IEnumerable<T> , který je dotazován.
Vyhledá MethodExpression metodu, která obsahuje dotaz, v následujícím pořadí:
Pokud je v QueryExtender ovládacím TypeName prvku zadána vlastnost, MethodExpression objekt hledá metodu v zadaném typu.
Pokud zdroj dat implementuje IDynamicDataSource, metoda vyhledá metodu pro typ kontextu (DataContext nebo ObjectContext objekt.)
Metoda hledá metodu v ovládacím prvku šablony, v základní třídě pro stránku nebo v uživatelském ovládacím prvku.
Třída MethodExpression je podobná CustomExpression třídě s tím rozdílem, že výraz metody je spuštěn v reakci na volání metody a vlastní výraz je spuštěn v reakci na událost.
Konstruktory
MethodExpression() |
Inicializuje novou instanci MethodExpression třídy. |
Vlastnosti
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íka. (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í LINQ dotaz. |
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í informace o stavu zobrazení. (Zděděno od DataSourceExpression) |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetQueryable(IQueryable) |
Přeloží výraz pomocí zadaného IQueryable objektu. |
GetType() |
Získá aktuální Type instanci. (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 Objectsouboru . (Zděděno od Object) |
SaveViewState() |
Uloží aktuální stav zobrazení objektu ParameterDataSourceExpression . (Zděděno od ParameterDataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
Provede výraz pomocí zadaného ovládacího prvku vlastníka, kontextu a zdroje dat. (Zděděno od ParameterDataSourceExpression) |
SetDirty() |
Označí DataSourceExpression objekt tak, aby jeho stav byl 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 v objektu StateBag objektu. (Zděděno od ParameterDataSourceExpression) |
Explicitní implementace rozhraní
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 zobrazení objektu DataSourceExpression tak, aby změny mohly být uloženy v objektu StateBag pro objekt výrazu zdroje dat. (Zděděno od DataSourceExpression) |