DynamicRouteExpression 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터 필터링을 수행하기 위해 라우팅 정보에서 기본 키를 가져옵니다.
public ref class DynamicRouteExpression : System::Web::UI::WebControls::Expressions::DataSourceExpression
public class DynamicRouteExpression : System.Web.UI.WebControls.Expressions.DataSourceExpression
type DynamicRouteExpression = class
inherit DataSourceExpression
Public Class DynamicRouteExpression
Inherits DataSourceExpression
- 상속
예제
소스 코드를 사용 하 여 Visual Studio 프로젝트는 다음이 항목과 함께 사용할 수 있습니다: 동적 데이터 스 캐 폴딩합니다.
다음 예에서는 Products 테이블에 대 한 사용자 지정 List.aspx 페이지가 템플릿을 보여 줍니다. 사용 된 ColumnName 제품 행을 필터링 하는 것에 대 한 ProductCategory 외래 키를 지정 하는 속성입니다.
사용자 지정 List.aspx 페이지가 ProductCategory 외래 키 열에 포함 된 범주의 링크를 포함 하는 열이 표시 됩니다. 사용자가 이러한 링크 중 하나를 클릭 하면 List.aspx 페이지가 선택한 범주를 포함 하는 행만 표시 합니다.
예제에는 다음이 필요합니다.
Dynamic Data 웹 사이트입니다. 자세한 내용은 연습:는 새 동적 데이터 웹 사이트를 사용 하 여 스 캐 폴딩을 만들합니다.
AdventureWorksLT 샘플 데이터베이스입니다. 자세한 내용은 참조 하세요. 방법: 사용 하 여 AdventureWorksLT 데이터베이스에 연결을 합니다. MDF 파일합니다.
<%@ Page Language="C#" MasterPageFile="~/Site.master" CodeFile="List.aspx.cs" Inherits="List" %>
<%@ Register src="~/DynamicData/Content/GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<asp:Content ID="headContent" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<h2 class="DDSubHeader">Using DynamicRouteExpression with <%= table.DisplayName%> table</h2>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="DD">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
HeaderText="List of validation errors" CssClass="DDValidator" />
<asp:DynamicValidator runat="server" ID="GridViewValidator" ControlToValidate="GridView1" Display="None" CssClass="DDValidator" />
<br /> <br />
<div class="DDFilter">
<asp:HyperLink runat="server" ID="ViewAllLink" Text="View All Categories" />
</div>
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" EnablePersistedSelection="true"
AllowPaging="True" AllowSorting="True" CssClass="DDGridView"
RowStyle-CssClass="td" HeaderStyle-CssClass="th" CellPadding="6">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DynamicHyperLink runat="server" Action="Edit" Text="Edit"
/> <asp:LinkButton runat="server" CommandName="Delete" Text="Delete"
OnClientClick='return confirm("Are you sure you want to delete this item?");'
/> <asp:DynamicHyperLink runat="server" Text="Details" />
<!-- Create action link to filter items that
belong to the same category -->
<a ID="CategoryRouteID" runat="server"
href='<%# GetRouteInformation() %>'>
Filter By: <%# GetProductCategory() %>
</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="DDFooter"/>
<PagerTemplate>
<asp:GridViewPager runat="server" />
</PagerTemplate>
<EmptyDataTemplate>
There are currently no items in this table.
</EmptyDataTemplate>
</asp:GridView>
<asp:LinqDataSource ID="GridDataSource" runat="server" EnableDelete="true" />
<asp:QueryExtender TargetControlID="GridDataSource" ID="GridQueryExtender" runat="server">
<asp:DynamicRouteExpression ColumnName="ProductCategory" />
</asp:QueryExtender>
<br />
<div class="DDBottomHyperLink">
<asp:DynamicHyperLink ID="InsertHyperLink" runat="server" Action="Insert"><img runat="server" src="~/DynamicData/Content/Images/plus.gif" alt="Insert new item" />Insert new item</asp:DynamicHyperLink>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<%@ Page Language="VB" MasterPageFile="~/Site.master" CodeFile="List.aspx.vb" Inherits="List" %>
<%@ Register src="~/DynamicData/Content/GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<asp:Content ID="headContent" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<h2 class="DDSubHeader"><%= table.DisplayName%></h2>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="DD">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
HeaderText="List of validation errors" CssClass="DDValidator" />
<asp:DynamicValidator runat="server" ID="GridViewValidator" ControlToValidate="GridView1" Display="None" CssClass="DDValidator" />
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" EnablePersistedSelection="true"
AllowPaging="True" AllowSorting="True" CssClass="DDGridView"
RowStyle-CssClass="td" HeaderStyle-CssClass="th" CellPadding="6">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DynamicHyperLink runat="server" Action="Edit" Text="Edit"
/> <asp:LinkButton runat="server" CommandName="Delete" Text="Delete"
OnClientClick='return confirm("Are you sure you want to delete this item?");'
/> <asp:DynamicHyperLink runat="server" Text="Details" />
<!-- Create action link to filter items that
belong to the same category -->
<a ID="CategoryRouteID" runat="server"
href='<%# GetRouteInformation() %>'>
Filter By: <%# GetProductCategory() %>
</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="DDFooter"/>
<PagerTemplate>
<asp:GridViewPager runat="server" />
</PagerTemplate>
<EmptyDataTemplate>
There are currently no items in this table.
</EmptyDataTemplate>
</asp:GridView>
<asp:LinqDataSource ID="GridDataSource" runat="server" EnableDelete="true" />
<!-- Set the foreign-key to use for filtering -->
<asp:QueryExtender TargetControlID="GridDataSource" ID="GridQueryExtender" runat="server">
<asp:DynamicRouteExpression ColumnName="ProductCategory" />
</asp:QueryExtender>
<br />
<div class="DDBottomHyperLink">
<asp:DynamicHyperLink ID="InsertHyperLink" runat="server" Action="Insert"><img runat="server" src="~/DynamicData/Content/Images/plus.gif" alt="Insert new item" />Insert new item</asp:DynamicHyperLink>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
// Create route information based on the
// foreign-key specified in the
// DynamicRouteExpression page markup.
protected string GetRouteInformation()
{
// Retrieve the current data item.
var productItem = (Product)GetDataItem();
if (productItem != null)
{
RouteValueDictionary rvd = new RouteValueDictionary();
rvd.Add("ProductCategoryID", productItem.ProductCategoryID );
string routePath =
table.GetActionPath(PageAction.List, rvd);
return routePath;
}
return string.Empty;
}
// Get the name of the foreign-key category.
protected string GetProductCategory()
{
// Retrieves the current data item.
var productItem = (Product)GetDataItem();
if (productItem != null)
{
return productItem.ProductCategory.Name;
}
return string.Empty;
}
' Create route information based on the
' foreign-key specified in the
' DynamicRouteExpression page markup.
Protected Function GetRouteInformation() As String
' Retrieve the current data item.
Dim productItem = CType(GetDataItem(), Product)
If productItem IsNot Nothing Then
Dim rvd As New RouteValueDictionary()
rvd.Add("ProductCategoryID", productItem.ProductCategoryID)
Dim routePath As String = table.GetActionPath(PageAction.List, rvd)
Return routePath
End If
Return String.Empty
End Function
' Get the name of the foreign-key category.
Protected Function GetProductCategory() As String
' Retrieves the current data item.
Dim productItem = CType(GetDataItem(), Product)
If productItem IsNot Nothing Then
Return productItem.ProductCategory.Name
End If
Return String.Empty
End Function
설명
DynamicRouteExpression 클래스를 사용 합니다 QueryExtender 페이지 태그에서 제어 합니다. DynamicRouteExpression 클래스 웹 요청에 포함 된 라우팅 정보에서 기본 키를 가져옵니다. 합니다 QueryExtender 컨트롤에서 키를 사용 하 여는 Where
절. 이 다음 키로 필터링 된 테이블 행을 반환 하는 데이터 원본에 대 한 쿼리를 수정 합니다.
사용 하 여 지정 하는 외래 키를 사용 하 여 데이터를 필터링 할 수도 있습니다는 ColumnName 속성입니다.
선언 구문
<asp:DynamicRouteExpression
ColumnName="Name of the foreign key column"/>
생성자
DynamicRouteExpression() |
DynamicRouteExpression 클래스의 새 인스턴스를 초기화합니다. |
속성
ColumnName |
데이터 소스를 쿼리하는 데 사용하는 외래 키를 포함하는 열의 이름을 가져오거나 설정합니다. |
Context |
소유자 컨트롤의 HttpContext 인스턴스를 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
DataSource |
소유자 컨트롤에 연결된 데이터 소스 개체를 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
IsTrackingViewState |
데이터 소스 식 개체에서 해당 뷰 상태의 변경 내용을 추적하는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
Owner |
소유자 컨트롤을 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
ViewState |
현재 뷰 상태 정보가 들어 있는 StateBag 클래스의 인스턴스를 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetQueryable(IQueryable) |
데이터 원본에서 쿼리를 가져옵니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
LoadViewState(Object) |
DataSourceExpression 개체에서 유지해야 하는 값의 상태를 로드합니다. (다음에서 상속됨 DataSourceExpression) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
SaveViewState() |
DataSourceExpression 개체의 현재 뷰 상태를 저장합니다. (다음에서 상속됨 DataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
DynamicRouteExpression 개체의 HTTP 컨텍스트를 설정합니다. |
SetDirty() |
DataSourceExpression 개체의 상태가 뷰 상태에 저장되도록 표시합니다. (다음에서 상속됨 DataSourceExpression) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
TrackViewState() |
DataSourceExpression 개체의 뷰 상태 변경 내용이 해당 데이터 소스 식 개체의 StateBag 개체에 저장될 수 있도록 추적합니다. (다음에서 상속됨 DataSourceExpression) |
명시적 인터페이스 구현
IStateManager.IsTrackingViewState |
클래스에서 구현될 때 데이터 소스 식 개체에서 해당 뷰 상태의 변경 내용을 추적하는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 DataSourceExpression) |
IStateManager.LoadViewState(Object) |
클래스에서 구현될 때 이전에 저장한 데이터 소스 식 개체의 뷰 상태를 로드합니다. (다음에서 상속됨 DataSourceExpression) |
IStateManager.SaveViewState() |
클래스에서 구현될 때 DataSourceExpression 개체의 현재 뷰 상태를 저장합니다. (다음에서 상속됨 DataSourceExpression) |
IStateManager.TrackViewState() |
클래스에서 구현될 때 DataSourceExpression 개체의 뷰 상태 변경 내용이 해당 데이터 소스 식 개체의 StateBag 개체에 저장될 수 있도록 추적합니다. (다음에서 상속됨 DataSourceExpression) |