Deklarative Syntax des FilterRepeater-Webserversteuerelements

Aktualisiert: November 2007

Das FilterRepeater-Steuerelement ist Teil des ASP.NET Dynamic Data-Framework. Das Steuerelement wird in Dynamic Data verwendet, um für eine einzelne Tabelle im Datenmodell eine Liste von Fremdschlüsselfiltern und booleschen Spaltenfiltern anzuzeigen.

<asp:FilterRepeater
        ContextTypeName="string"
    DataMember="string"
    DataSource="string"
    DataSourceID="string"
        DynamicFilterContainerId="string"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnItemCommand="ItemCommand event handler"
    OnItemCreated="ItemCreated event handler"
    OnItemDataBound="ItemDataBound event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
        TableName="string"
    Visible="True|False"
>
        <AlternatingItemTemplate>
            <!-- child controls -->
        </AlternatingItemTemplate>
        <FooterTemplate>
            <!-- child controls -->
        </FooterTemplate>
        <HeaderTemplate>
            <!-- child controls -->
        </HeaderTemplate>
        <ItemTemplate>
            <!-- child controls -->
        </ItemTemplate>
        <SeparatorTemplate>
            <!-- child controls -->
        </SeparatorTemplate>
</asp:FilterRepeater>

Hinweise

Das FilterRepeater-Steuerelement durchläuft alle Fremdschlüsselspalten und booleschen Spalten einer für Dynamic Data aktivierten Tabelle, und erstellt jeweils ein ItemTemplate-Objekt. In der Standardeinstellung wird in Dynamic Data für die Darstellung des Fremdschlüsselwerts das erste Zeichenfolgenfeld der Tabelle verwendet, zu der über den Fremdschlüssel ein Verweis besteht. Das angezeigte Feld kann überschrieben werden, indem der DisplayColumnAttribute-Wert für die Fremdschlüsseltabelle im Datenmodell festgelegt wird.

Das FilterRepeater-Steuerelement wird in den Seitenvorlagen List und ListDetails verwendet.

Beispiel

Im folgenden Beispiel wird dargestellt, wie das FilterRepeater-Steuerelement verwendet wird, um Dropdownlisten für die einzelnen booleschen Felder und Fremdschlüsselfelder in der angezeigten Tabelle zu erstellen.

<%@ Page Language="VB" MasterPageFile="~/Site.master" %>

<%@ Register src="GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<%@ Register src="FilterUserControl.ascx" tagname="DynamicFilter" tagprefix="asp" %>

<script runat="server">

    Protected table As MetaTable

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
        DynamicDataManager1.RegisterControl(GridView1)
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        table = GridDataSource.GetTable
        Title = table.DisplayName
        If table.IsReadOnly Then
            GridView1.Columns.RemoveAt(0)
        End If
    End Sub

    Protected Sub OnFilterSelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        GridView1.PageIndex = 0
    End Sub

</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />

    <asp:FilterRepeater ID="FilterRepeater" runat="server">
        <ItemTemplate>
            <asp:Label runat="server" Text='<%# Eval("DisplayName") %>' AssociatedControlID="DynamicFilter$DropDownList1" />
            <asp:DynamicFilter runat="server" ID="DynamicFilter" OnSelectedIndexChanged="OnFilterSelectedIndexChanged" />
        </ItemTemplate>
        <FooterTemplate><br /><br /></FooterTemplate>
    </asp:FilterRepeater>

    <asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource"
        AllowPaging="True" AllowSorting="True" CssClass="gridview">

    </asp:GridView>

    <asp:LinqDataSource ID="GridDataSource" runat="server" EnableDelete="true">
        <WhereParameters>
            <asp:DynamicControlParameter ControlID="FilterRepeater" />
        </WhereParameters>
    </asp:LinqDataSource>


</asp:Content>
<%@ Page Language="C#" MasterPageFile="~/Site.master" %>

<%@ Register Src="FilterUserControl.ascx" TagName="DynamicFilter" TagPrefix="asp" %>

<script runat="server">

    protected MetaTable table;

    protected void Page_Init(object sender, EventArgs e) {
        DynamicDataManager1.RegisterControl(GridView1);

    }

    protected void Page_Load(object sender, EventArgs e) {
        table = GridDataSource.GetTable();

        if (table.IsReadOnly) {
            GridView1.Columns.RemoveAt(0);
        }
    }

    protected void OnFilterSelectedIndexChanged(object sender, EventArgs e) {
        GridView1.PageIndex = 0;
    }

</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:DynamicDataManager ID="DynamicDataManager1" runat="server" 
        AutoLoadForeignKeys="true" />

    <asp:FilterRepeater ID="FilterRepeater" runat="server">
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%# Eval("DisplayName") %>' AssociatedControlID="DynamicFilter$DropDownList1" />
            <asp:DynamicFilter runat="server" ID="DynamicFilter" OnSelectedIndexChanged="OnFilterSelectedIndexChanged" />
        </ItemTemplate>
    </asp:FilterRepeater>

    <asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" AllowPaging="True"
        AllowSorting="True" CssClass="gridview">
    </asp:GridView>

    <asp:LinqDataSource ID="GridDataSource" runat="server" EnableDelete="true">
        <WhereParameters>
            <asp:DynamicControlParameter ControlId="FilterRepeater" />
        </WhereParameters>
    </asp:LinqDataSource>

</asp:Content>

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen einer neuen Dynamic Data-Website mithilfe des Gerüstbaus

Referenz

FilterRepeater