FilterRepeater 웹 서버 컨트롤 선언 구문
업데이트: 2007년 11월
FilterRepeater 컨트롤은 ASP.NET Dynamic Data 프레임워크의 일부입니다. 이 컨트롤은 Dynamic Data에서 데이터 모델의 개별 테이블에 대한 외래 키 필터 및 부울 열 필터 목록을 표시하는 데 사용됩니다.
<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>
설명
FilterRepeater 컨트롤은 Dynamic Data를 사용하는 테이블의 각 외래 키 열 및 부울 열을 반복하면서 각 열에 대해 ItemTemplate 개체를 만듭니다. 기본적으로 Dynamic Data에서는 외래 키를 통해 연결되는 테이블의 첫 번째 문자열 필드를 사용하여 외래 키 값을 나타냅니다. 데이터 모델의 외래 키 테이블에 대한 DisplayColumnAttribute 값을 설정하여 표시되는 필드를 재정의할 수 있습니다.
FilterRepeater 컨트롤은 List 및 ListDetails 페이지 템플릿에서 사용됩니다.
예제
다음 예제에서는 FilterRepeater 컨트롤을 사용하여 표시된 테이블의 각 부울 및 외래 키 필드에 대한 드롭다운 목록을 만드는 방법을 보여 줍니다.
<%@ 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>
참고 항목
작업
연습: 스캐폴딩을 사용하여 새 Dynamic Data 웹 사이트 만들기