QueryExtender Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Gör att data från en datakälla kan filtreras utan en explicit Where sats i datakällan.
public ref class QueryExtender : System::Web::UI::Control
[System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.QueryExtender), "QueryExtender.bmp")]
public class QueryExtender : System.Web.UI.Control
[<System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.QueryExtender), "QueryExtender.bmp")>]
type QueryExtender = class
inherit Control
Public Class QueryExtender
Inherits Control
- Arv
- Attribut
Exempel
I följande exempel visas hur du använder QueryExtender kontrollen för att tillhandahålla en sökfunktion på en webbsida. Kontrollen QueryExtender använder den text som anges i TextBoxSearch kontrollen för att söka efter innehåll i kolumnerna ProductName och Supplier.CompanyName i en produkttabell i de data som returneras från LinqDataSource kontrollen. Objektet SearchExpression används för att utföra sökningen. Egenskapen DataFields anger de datafält som ska sökas. Egenskapen SearchType anger vilken typ av sökning som ska utföras. Elementet ControlParameter anger den kontroll som innehåller texten som ska användas för sökningen. Det här kodexemplet är en del av ett större exempel som finns i Genomgång: Filtrera data på en webbsida med deklarativ syntax.
<asp:LinqDataSource ID="dataSource" runat="server"
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender TargetControlID="dataSource" runat="server">
<asp:SearchExpression DataFields="ProductName, Supplier.CompanyName"
SearchType="StartsWith">
<asp:ControlParameter ControlID="TextBoxSearch" />
</asp:SearchExpression>
</asp:QueryExtender>
I följande exempel visas hur du använder QueryExtender kontrollen för att söka efter värden i ett angivet intervall på en webbsida. Kontrollen QueryExtender använder de värden som anges i TextBoxFrom kontrollerna och TextBoxTo för att söka efter värden i kolumnerna ProductName och Supplier.CompanyName i en produkttabell i de data som returneras från LinqDataSource kontrollen. Elementet ControlParameter anger de textrutekontroller som innehåller de lägsta och högsta värden som ska användas för sökning i intervallet. Egenskaperna MinType och MaxType anger att minimi- och maxvärdena måste inkluderas i de data som returneras. Det här kodexemplet är en del av ett större exempel i Genomgång: Filtrera data på en webbsida med deklarativ syntax.
<asp:LinqDataSource ID="dataSource" runat="server"
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender TargetControlID="dataSource" runat="server">
<asp:RangeExpression DataField="UnitPrice" MinType="Inclusive"
MaxType="Inclusive">
<asp:ControlParameter ControlID="TextBoxFrom" />
<asp:ControlParameter ControlID="TexBoxTo" />
</asp:RangeExpression>
</asp:QueryExtender>
Kommentarer
I det här avsnittet:
Inledning
Kontrollen QueryExtender används för att skapa filter för data som hämtas från en datakälla, utan att använda en explicit Where sats i datakällan. Kontrollen QueryExtender kan användas för att ange filtrering med deklarativ syntax.
Bakgrund
Filtrering utesluter data från en datakälla genom att endast visa de poster som uppfyller angivna villkor. Med filtrering kan du visa olika vyer av data som finns i en datauppsättning utan att påverka data i datauppsättningen.
Filtrering kräver vanligtvis att du skapar en Where sats som ska tillämpas på kommandot som frågar datakällan. Egenskapen för Where datakällkontrollen kanske dock inte exponerar de fullständiga funktioner som är tillgängliga. Med QueryExtender-kontrollen kan du till exempel köra frågor mot en tabell genom att söka efter strängar i början, slutet eller var som helst i .datafältet.
Om du vill exponera alla funktioner som är tillgängliga i LINQ och göra det enklare att filtrera data ASP.NET ger QueryExtender kontroll. Kontrollen QueryExtender har följande fördelar:
Det ger en bättre filtreringsupplevelse än att skriva en
Wheresats. Du kan till exempel söka i en produkttabell efter booleska värden med hjälp PropertyExpression av filtret utan att skriva en fråga.Med den kan du ange filter med samma syntax för LinqDataSource kontrollerna och EntityDataSource och för andra kontroller för datakällor som du kan använda.
Den kan användas med LinqDataSource kontroll, med en EntityDataSource kontroll eller med datakällor från tredje part.
Filteralternativ
Kontrollen QueryExtender stöder en mängd olika alternativ som du kan använda för att filtrera data. Med kontrollen kan du söka i strängar, söka efter numeriska värden i ett angivet intervall och jämföra ett egenskapsvärde i en tabell med ett angivet värde. Med kontrollen kan du också sortera data och ange anpassade frågor.
De här alternativen tillhandahålls som LINQ-uttryck i QueryExtender kontrollen. Kontrollen QueryExtender stöder även uttryck som är specifika för ASP.NET dynamiska dataprogram.
I följande tabell visas de alternativ som du kan använda för att filtrera data i QueryExtender kontrollen.
| Expression | Description |
|---|---|
| ControlFilterExpression | (Endast dynamiska data) Skapar en databasfråga med hjälp av den datanyckel som har valts i en källdatabunden kontroll. Information om hur du använder det här filteralternativet finns i Så här filtrerar du tabellrader med värden från en överordnad tabell i dynamiska data. |
| CustomExpression | Anger ett användardefinierat uttryck för en datakälla. Det anpassade LINQ-uttrycket kan anropas i en händelsehanterare. |
| DynamicFilterExpression | (Endast dynamiska data) Skapar en databasfråga med hjälp av den angivna DynamicFilter kontrollen. Information om hur du använder det här filteralternativet finns i Så här filtrerar du tabellrader med sekundärnyckel i dynamiska data. |
| MethodExpression | Anger ett användardefinierat LINQ-uttryck för en datakälla. Uttrycket anropas i en metod. |
| OrderByExpression | Använder ett sorteringsuttryck på ett IQueryable datakällans objekt. När du har tillämpat värdet OrderByExpression kan du tillämpa ytterligare sorteringsåtgärder genom att ange ett ThenByExpressions värde. |
| PropertyExpression | Jämför egenskaperna för datafältet och egenskapsvärdena som anges i WhereParameters samlingen. |
| RangeExpression | Avgör om ett värde är större än eller mindre än ett angivet värde eller om ett värde ligger mellan två värden. |
| SearchExpression | Jämför värden i ett fält eller fält med ett angivet strängvärde. |
Du kan använda dessa QueryExtender alternativ individuellt eller kombinera dem för att tillhandahålla komplex filtrering på en webbsida. Mer information finns i Översikt över QueryExtender-webbserverkontroll. Genomgång: Filtrera data på en webbsida med deklarativ syntax
Uppgifter
I följande tabell visas uppgifter som visar hur du QueryExtender använder kontrollen för att filtrera data.
| Dokument | Uppgift |
|---|---|
| Genomgång: Filtrera data på en webbsida med deklarativ syntax | Visar hur du använder de filteralternativ som QueryExtender kontrollen innehåller. |
Deklarativ syntax
<asp:QueryExtender
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBiding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="UnLoad event handler"
Runat="server"
TargetControlID="string"
Visible="True|False"
>
<asp:ControlFilterExpression
ControlD="string"
Column="string">
</asp:ControlFilterExpression>
<asp:DynamicFilterExpression
ControlD="string"
</asp:DynamicFilterExpression>
<asp:CustomExpression="string"
OnQuerying="OnQuerying event handler">
</asp:CustomExpression>
<asp:OrderByExpression="string"
DataField="string"
Direction="string">
<asp:ThenByExpression
DataField="string"
Direction="string"
</asp:ThenBy>
</asp:OrderByExpression>
<asp:PropertyExpression="string">
<!-- child controls -->
</asp:PropertyExpression
>
<asp:RangeExpression="integer"
Datafield="string"
MaxType="Exclusive|Inclusive|None"
MinType="Exclusive|Inclusive|None">
<!--child controls-->
</asp:RangeExpression>
<asp:SearchExpression="string"
ComparisonType="CurrentCulture|CurrentCultureIgnoreCase|
InvariantCulture|InvariantCultureIgnoreCase|
Ordinal|OrdinalIgnoreCase"
DataField="string"
SearchType="Contains|EndsWith|StartsWith">
<!--child controls-->
</asp:SearchExpression>
</asp:QueryExtender>
Konstruktorer
| Name | Description |
|---|---|
| QueryExtender() |
Initierar en ny instans av QueryExtender klassen. |
Egenskaper
| Name | Description |
|---|---|
| Adapter |
Hämtar det webbläsarspecifika adaptern för kontrollen. (Ärvd från Control) |
| AppRelativeTemplateSourceDirectory |
Hämtar eller anger den programrelativa virtuella katalogen PageUserControl för eller -objektet som innehåller den här kontrollen. (Ärvd från Control) |
| BindingContainer |
Hämtar kontrollen som innehåller den här kontrollens databindning. (Ärvd från Control) |
| ChildControlsCreated |
Hämtar ett värde som anger om serverkontrollens underordnade kontroller har skapats. (Ärvd från Control) |
| ClientID |
Hämtar kontroll-ID:t för HTML-kod som genereras av ASP.NET. (Ärvd från Control) |
| ClientIDMode |
Hämtar eller anger den algoritm som används för att generera värdet för ClientID egenskapen. (Ärvd från Control) |
| ClientIDSeparator |
Hämtar ett teckenvärde som representerar det avgränsartecken som används i egenskapen ClientID . (Ärvd från Control) |
| Context |
Hämtar objektet HttpContext som är associerat med serverkontrollen för den aktuella webbbegäran. (Ärvd från Control) |
| Controls |
Hämtar ett ControlCollection objekt som representerar de underordnade kontrollerna för en angiven serverkontroll i användargränssnittshierarkin. (Ärvd från Control) |
| DataItemContainer |
Hämtar en referens till namngivningscontainern om namngivningscontainern implementerar IDataItemContainer. (Ärvd från Control) |
| DataKeysContainer |
Hämtar en referens till namngivningscontainern om namngivningscontainern implementerar IDataKeysControl. (Ärvd från Control) |
| DataSource |
Hämtar datakällans kontroll (IDataSource objekt) som ska användas för frågan. |
| DesignMode |
Hämtar ett värde som anger om en kontroll används på en designyta. (Ärvd från Control) |
| EnableTheming |
Hämtar eller anger ett värde som anger om teman ska gälla för den här kontrollen. (Ärvd från Control) |
| EnableViewState |
Hämtar eller anger ett värde som anger om serverkontrollen bevarar sitt visningstillstånd och visningstillståndet för eventuella underordnade kontroller som den innehåller till den begärande klienten. (Ärvd från Control) |
| Events |
Hämtar en lista över händelsehanterardelegater för kontrollen. Den här egenskapen är skrivskyddad. (Ärvd från Control) |
| Expressions |
Hämtar den samling uttryck som tillämpas på IDataSource kontrollen. |
| HasChildViewState |
Hämtar ett värde som anger om den aktuella serverkontrollens underordnade kontroller har några sparade vytillståndsinställningar. (Ärvd från Control) |
| ID |
Hämtar eller anger den programmatiska identifierare som tilldelats serverkontrollen. (Ärvd från Control) |
| IdSeparator |
Hämtar det tecken som används för att separera kontrollidentifierare. (Ärvd från Control) |
| IsChildControlStateCleared |
Hämtar ett värde som anger om kontroller i den här kontrollen har kontrolltillstånd. (Ärvd från Control) |
| IsTrackingViewState |
Hämtar ett värde som anger om serverkontrollen sparar ändringar i visningstillståndet. (Ärvd från Control) |
| IsViewStateEnabled |
Hämtar ett värde som anger om visningstillstånd är aktiverat för den här kontrollen. (Ärvd från Control) |
| LoadViewStateByID |
Hämtar ett värde som anger om kontrollen deltar i inläsningen av dess visningstillstånd i ID stället för index. (Ärvd från Control) |
| NamingContainer |
Hämtar en referens till serverkontrollens namngivningscontainer, vilket skapar ett unikt namnområde för differentiering mellan serverkontroller med samma ID egenskapsvärde. (Ärvd från Control) |
| Page |
Hämtar en referens till den Page instans som innehåller serverkontrollen. (Ärvd från Control) |
| Parent |
Hämtar en referens till serverkontrollens överordnade kontroll i sidkontrollhierarkin. (Ärvd från Control) |
| RenderingCompatibility |
Hämtar ett värde som anger den ASP.NET version som renderad HTML kommer att vara kompatibel med. (Ärvd från Control) |
| Site |
Hämtar information om containern som är värd för den aktuella kontrollen när den återges på en designyta. (Ärvd från Control) |
| SkinID |
Hämtar eller ställer in huden för att applicera på kontrollen. (Ärvd från Control) |
| TargetControlID |
Hämtar eller anger ID för kontrollen som IDataSource ska användas för frågan. |
| TemplateControl |
Hämtar eller anger en referens till mallen som innehåller den här kontrollen. (Ärvd från Control) |
| TemplateSourceDirectory |
Hämtar den virtuella katalogen för Page eller UserControl som innehåller den aktuella serverkontrollen. (Ärvd från Control) |
| UniqueID |
Hämtar den unika, hierarkiskt kvalificerade identifieraren för serverkontrollen. (Ärvd från Control) |
| ValidateRequestMode |
Hämtar eller anger ett värde som anger om kontrollen kontrollerar klientindata från webbläsaren efter potentiellt farliga värden. (Ärvd från Control) |
| ViewState |
Hämtar en ordlista med tillståndsinformation som gör att du kan spara och återställa visningstillståndet för en serverkontroll över flera begäranden för samma sida. (Ärvd från Control) |
| ViewStateIgnoresCase |
Hämtar ett värde som anger om objektet StateBag är skiftlägesokänsligt. (Ärvd från Control) |
| ViewStateMode |
Hämtar eller anger visningstillståndsläget för den här kontrollen. (Ärvd från Control) |
| Visible |
Hämtar eller anger ett värde som anger om en serverkontroll återges som användargränssnitt på sidan. (Ärvd från Control) |
Metoder
| Name | Description |
|---|---|
| AddedControl(Control, Int32) |
Anropas efter att en underordnad kontroll har lagts till i ControlsControl objektets samling. (Ärvd från Control) |
| AddParsedSubObject(Object) |
Meddelar serverkontrollen att ett element, antingen XML eller HTML, parsades och lägger till elementet i serverkontrollens ControlCollection objekt. (Ärvd från Control) |
| ApplyStyleSheetSkin(Page) |
Tillämpar formategenskaperna som definierats i sidformatmallen på kontrollen. (Ärvd från Control) |
| BeginRenderTracing(TextWriter, Object) |
Påbörjar designtidsspårning av återgivningsdata. (Ärvd från Control) |
| BuildProfileTree(String, Boolean) |
Samlar in information om serverkontrollen och levererar den till egenskapen Trace som ska visas när spårning är aktiverat för sidan. (Ärvd från Control) |
| ClearCachedClientID() |
Anger det cachelagrade ClientID värdet till |
| ClearChildControlState() |
Tar bort kontrolltillståndsinformationen för serverkontrollens underordnade kontroller. (Ärvd från Control) |
| ClearChildState() |
Tar bort informationen om visningstillstånd och kontrolltillstånd för alla serverkontrollens underordnade kontroller. (Ärvd från Control) |
| ClearChildViewState() |
Tar bort visningstillståndsinformationen för alla serverkontrollens underordnade kontroller. (Ärvd från Control) |
| ClearEffectiveClientIDMode() |
Anger egenskapen för ClientIDMode den aktuella kontrollinstansen och för eventuella underordnade kontroller till Inherit. (Ärvd från Control) |
| CreateChildControls() |
Anropas av det ASP.NET sidramverket för att meddela serverkontroller som använder kompositionsbaserad implementering för att skapa underordnade kontroller som de innehåller som förberedelse för att publicera tillbaka eller återge. (Ärvd från Control) |
| CreateControlCollection() |
Skapar ett nytt ControlCollection objekt som innehåller de underordnade kontrollerna (både literal och server) för serverkontrollen. (Ärvd från Control) |
| DataBind() |
Binder en datakälla till den anropade serverkontrollen och alla dess underordnade kontroller. (Ärvd från Control) |
| DataBind(Boolean) |
Binder en datakälla till den anropade serverkontrollen och alla dess underordnade kontroller med ett alternativ för att skapa händelsen DataBinding . (Ärvd från Control) |
| DataBindChildren() |
Binder en datakälla till serverkontrollens underordnade kontroller. (Ärvd från Control) |
| Dispose() |
Gör att en serverkontroll kan utföra slutlig rensning innan den frigörs från minnet. (Ärvd från Control) |
| EndRenderTracing(TextWriter, Object) |
Avslutar designtidsspårning av återgivningsdata. (Ärvd från Control) |
| EnsureChildControls() |
Avgör om serverkontrollen innehåller underordnade kontroller. Om den inte gör det skapar den underordnade kontroller. (Ärvd från Control) |
| EnsureID() |
Skapar en identifierare för kontroller som inte har tilldelats någon identifierare. (Ärvd från Control) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| FindControl(String, Int32) |
Söker i den aktuella namngivningscontainern efter en serverkontroll med det angivna |
| FindControl(String) |
Söker i den aktuella namngivningscontainern efter en serverkontroll med den angivna |
| Focus() |
Anger indatafokus till en kontroll. (Ärvd från Control) |
| GetDesignModeState() |
Hämtar designtidsdata för en kontroll. (Ärvd från Control) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetRouteUrl(Object) |
Hämtar url:en som motsvarar en uppsättning routningsparametrar. (Ärvd från Control) |
| GetRouteUrl(RouteValueDictionary) |
Hämtar url:en som motsvarar en uppsättning routningsparametrar. (Ärvd från Control) |
| GetRouteUrl(String, Object) |
Hämtar url:en som motsvarar en uppsättning vägparametrar och ett vägnamn. (Ärvd från Control) |
| GetRouteUrl(String, RouteValueDictionary) |
Hämtar url:en som motsvarar en uppsättning vägparametrar och ett vägnamn. (Ärvd från Control) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| GetUniqueIDRelativeTo(Control) |
Returnerar den prefixade delen av UniqueID egenskapen för den angivna kontrollen. (Ärvd från Control) |
| HasControls() |
Avgör om serverkontrollen innehåller några underordnade kontroller. (Ärvd från Control) |
| HasEvents() |
Returnerar ett värde som anger om händelser har registrerats för kontrollen eller underordnade kontroller. (Ärvd från Control) |
| IsLiteralContent() |
Avgör om serverkontrollen endast innehåller literalinnehåll. (Ärvd från Control) |
| LoadControlState(Object) |
Återställer kontrolltillståndsinformation från en begäran från föregående sida som sparades av SaveControlState() metoden. (Ärvd från Control) |
| LoadViewState(Object) |
Läser in tillståndet för värdena i kontrollen QueryExtender som måste bevaras. |
| MapPathSecure(String) |
Hämtar den fysiska sökväg som en virtuell sökväg, antingen absolut eller relativ, mappar till. (Ärvd från Control) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnBubbleEvent(Object, EventArgs) |
Avgör om händelsen för serverkontrollen skickas upp på sidans UI-serverkontrollhierarki. (Ärvd från Control) |
| OnDataBinding(EventArgs) |
Genererar händelsen DataBinding . (Ärvd från Control) |
| OnInit(EventArgs) |
Inträffar när en ny instans av QueryExtender klassen initieras. |
| OnLoad(EventArgs) |
Genererar händelsen Load . (Ärvd från Control) |
| OnPreRender(EventArgs) |
Genererar händelsen PreRender . (Ärvd från Control) |
| OnUnload(EventArgs) |
Genererar händelsen Unload . (Ärvd från Control) |
| OpenFile(String) |
Hämtar en Stream som används för att läsa en fil. (Ärvd från Control) |
| RaiseBubbleEvent(Object, EventArgs) |
Tilldelar alla källor till händelsen och dess information till kontrollens överordnade. (Ärvd från Control) |
| RemovedControl(Control) |
Anropas efter att en underordnad Controls kontroll har tagits bort från objektets Control samling. (Ärvd från Control) |
| Render(HtmlTextWriter) |
Skickar serverkontrollinnehåll till ett angivet HtmlTextWriter objekt som skriver innehållet som ska återges på klienten. (Ärvd från Control) |
| RenderChildren(HtmlTextWriter) |
Matar ut innehållet i en serverkontrolls underordnade objekt till ett angivet HtmlTextWriter objekt som skriver innehållet som ska återges på klienten. (Ärvd från Control) |
| RenderControl(HtmlTextWriter, ControlAdapter) |
Matar ut serverkontrollinnehåll till ett angivet HtmlTextWriter objekt med hjälp av ett angivet ControlAdapter objekt. (Ärvd från Control) |
| RenderControl(HtmlTextWriter) |
Matar ut serverkontrollinnehåll till ett angivet HtmlTextWriter objekt och lagrar spårningsinformation om kontrollen om spårning är aktiverat. (Ärvd från Control) |
| ResolveAdapter() |
Hämtar kontrollkortet som ansvarar för att återge den angivna kontrollen. (Ärvd från Control) |
| ResolveClientUrl(String) |
Hämtar en URL som kan användas av webbläsaren. (Ärvd från Control) |
| ResolveUrl(String) |
Konverterar en URL till en som kan användas på den begärande klienten. (Ärvd från Control) |
| SaveControlState() |
Sparar alla ändringar i serverkontrolltillståndet som har inträffat sedan sidan publicerades tillbaka till servern. (Ärvd från Control) |
| SaveViewState() |
Sparar kontrollens aktuella vytillstånd QueryExtender . |
| SetDesignModeState(IDictionary) |
Anger designtidsdata för en kontroll. (Ärvd från Control) |
| SetRenderMethodDelegate(RenderMethod) |
Tilldelar ett händelsehanterardelegat för att återge serverkontrollen och dess innehåll till den överordnade kontrollen. (Ärvd från Control) |
| SetTraceData(Object, Object, Object) |
Anger spårningsdata för designtidsspårning av återgivningsdata, med hjälp av det spårade objektet, spårningsdatanyckeln och värdet för spårningsdata. (Ärvd från Control) |
| SetTraceData(Object, Object) |
Anger spårningsdata för designtidsspårning av återgivningsdata med hjälp av spårningsdatanyckeln och värdet för spårningsdata. (Ärvd från Control) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TrackViewState() |
Spårar kontrollens ändringar i QueryExtender visningstillståndet så att ändringarna kan lagras i StateBag objektet för kontrollen. |
Händelser
| Name | Description |
|---|---|
| DataBinding |
Inträffar när serverkontrollen binder till en datakälla. (Ärvd från Control) |
| Disposed |
Inträffar när en serverkontroll frigörs från minnet, vilket är den sista fasen i serverkontrolllivscykeln när en ASP.NET sida begärs. (Ärvd från Control) |
| Init |
Inträffar när serverkontrollen initieras, vilket är det första steget i dess livscykel. (Ärvd från Control) |
| Load |
Inträffar när serverkontrollen läses in i Page objektet. (Ärvd från Control) |
| PreRender |
Inträffar efter att objektet Control har lästs in men före återgivningen. (Ärvd från Control) |
| Unload |
Inträffar när serverkontrollen tas bort från minnet. (Ärvd från Control) |
Explicita gränssnittsimplementeringar
Tilläggsmetoder
| Name | Description |
|---|---|
| FindDataSourceControl(Control) |
Returnerar datakällan som är associerad med datakontrollen för den angivna kontrollen. |
| FindFieldTemplate(Control, String) |
Returnerar fältmallen för den angivna kolumnen i den angivna kontrollens namngivningscontainer. |
| FindMetaTable(Control) |
Returnerar metatabellobjektet för den innehållande datakontrollen. |