DynamicRouteExpression Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri az elsődleges kulcsot az útválasztási adatokból az adatszűrés végrehajtásához.
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
- Öröklődés
Példák
Az alábbi példa egy egyéni List.aspx lapsablont mutat be a Termékek táblához. A tulajdonság használatával ColumnName adja meg a ProductCategory idegenkulcsot a Termékek sorok szűréséhez.
Az egyéni List.aspx lapon megjelenik egy oszlop, amely a ProductCategory idegenkulcs-oszlopban található kategóriák hivatkozásait tartalmazza. Amikor a felhasználó az egyik hivatkozásra kattint, a List.aspx lapon csak a kijelölt kategóriát tartalmazó sorok jelennek meg.
A példához a következők szükségesek:
- Dinamikus adatwebhely. További információ : Útmutató: Új dinamikusadat-webhely létrehozása állványzat használatával.
- Az AdventureWorksLT mintaadatbázis.
<%@ 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
Megjegyzések
Az DynamicRouteExpression osztályt az QueryExtender oldaljelölés vezérlőjével használja a rendszer. Az DynamicRouteExpression osztály lekéri az elsődleges kulcsot a webes kérelemben található útválasztási információkból. A QueryExtender vezérlő ezután egy Where záradék kulcsát használja. Ez módosítja az adatforrás lekérdezését, majd visszaadja a kulcs által szűrt táblasorokat.
Az adatokat a tulajdonság használatával ColumnName megadott idegen kulccsal is szűrheti.
Deklaratív szintaxis
<asp:DynamicRouteExpression
ColumnName="Name of the foreign key column"/>
Konstruktorok
| Name | Description |
|---|---|
| DynamicRouteExpression() |
Inicializálja a DynamicRouteExpression osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| ColumnName |
Lekéri vagy beállítja az adatforrás lekérdezéséhez használt idegen kulcsot tartalmazó oszlop nevét. |
| Context |
Lekéri a HttpContext tulajdonosvezérlő példányát. (Öröklődés forrása DataSourceExpression) |
| DataSource |
Lekéri a tulajdonosvezérlőhöz társított adatforrás-objektumot. (Öröklődés forrása DataSourceExpression) |
| IsTrackingViewState |
Olyan értéket kap, amely jelzi, hogy egy adatforráskifejezés-objektum követi-e a nézetállapot változásait. (Öröklődés forrása DataSourceExpression) |
| Owner |
Lekéri a tulajdonosi irányítást. (Öröklődés forrása DataSourceExpression) |
| ViewState |
Lekéri az StateBag osztály egy példányát, amely az aktuális nézetállapot-információkat tartalmazza. (Öröklődés forrása DataSourceExpression) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetQueryable(IQueryable) |
Lekéri a lekérdezést az adatforrásból. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| LoadViewState(Object) |
Betölti a megőrzendő objektum értékeinek DataSourceExpression állapotát. (Öröklődés forrása DataSourceExpression) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| SaveViewState() |
Menti az objektum aktuális nézetállapotát DataSourceExpression . (Öröklődés forrása DataSourceExpression) |
| SetContext(Control, HttpContext, IQueryableDataSource) |
Beállítja az objektum HTTP-környezetét DynamicRouteExpression . |
| SetDirty() |
Megjelöli az DataSourceExpression objektumot, hogy az állapota megtekintési állapotban legyen mentve. (Öröklődés forrása DataSourceExpression) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| TrackViewState() |
Nyomon követi az DataSourceExpression objektum állapotváltozásainak megtekintését, hogy a módosítások az adatforrás-kifejezés objektumában StateBag tárolhatók legyenek. (Öröklődés forrása DataSourceExpression) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IStateManager.IsTrackingViewState |
Egy osztály által implementált érték azt jelzi, hogy egy adatforráskifejezés-objektum követi-e a nézetállapot változásait. (Öröklődés forrása DataSourceExpression) |
| IStateManager.LoadViewState(Object) |
Amikor egy osztály implementálja, betölti az adatforráskifejezés-objektum korábban mentett nézetállapotát. (Öröklődés forrása DataSourceExpression) |
| IStateManager.SaveViewState() |
Amikor egy osztály implementálja, menti az objektum aktuális nézetállapotát DataSourceExpression . (Öröklődés forrása DataSourceExpression) |
| IStateManager.TrackViewState() |
Amikor egy osztály implementálja, nyomon követi az DataSourceExpression objektum állapotváltozásainak megtekintését, hogy a módosítások az StateBag adatforrás-kifejezés objektumában tárolhatók legyenek. (Öröklődés forrása DataSourceExpression) |