DynamicRouteExpression Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri filtreleme gerçekleştirmek için yönlendirme bilgilerinden birincil anahtarı alır.
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
- Devralma
Örnekler
Kaynak kodu içeren bir Visual Studio projesi şu konuya eşlik edebilir: Dinamik Veri İskelesi.
Aşağıdaki örnekte Ürünler tablosu için özel bir List.aspx sayfa şablonu gösterilmektedir. Products satırlarını ColumnName filtrelemek için ProductCategory yabancı anahtarını belirtmek için özelliğini kullanır.
Özel List.aspx sayfasında, ProductCategory yabancı anahtar sütununun içerdiği kategorilerin bağlantılarını içeren bir sütun görüntülenir. Kullanıcı bu bağlantılardan birine tıkladığında, List.aspx sayfasında yalnızca seçili kategoriyi içeren satırlar görüntülenir.
Örnek için şunlar gerekir:
Dinamik Veri Web sitesi. Daha fazla bilgi için bkz . İzlenecek Yol: İskele Kullanarak Yeni Dinamik Veri Web Sitesi Oluşturma.
AdventureWorksLT örnek veritabanı. Daha fazla bilgi için bkz. Nasıl yapılır: kullanarak AdventureWorksLT Veritabanına Bağlan. MDF Dosyası.
<%@ 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
Açıklamalar
DynamicRouteExpression sınıfı, sayfa işaretlemesindeki QueryExtender denetimle birlikte kullanılır. sınıfı, DynamicRouteExpression bir Web isteğinde yer alan yönlendirme bilgilerinden birincil anahtarı alır. Denetim QueryExtender daha sonra bir Where
yan tümcesinde anahtarını kullanır. Bu, veri kaynağının sorgusunu değiştirir ve ardından anahtara göre filtrelenmiş tablo satırlarını döndürür.
Ayrıca, özelliğini kullanarak belirttiğiniz bir yabancı anahtar kullanarak ColumnName da verileri filtreleyebilirsiniz.
Tanımlayıcı Sözdizimi
<asp:DynamicRouteExpression
ColumnName="Name of the foreign key column"/>
Oluşturucular
DynamicRouteExpression() |
DynamicRouteExpression sınıfının yeni bir örneğini başlatır. |
Özellikler
ColumnName |
Veri kaynağını sorgulamak için kullanılan yabancı anahtarı içeren bir sütunun adını alır veya ayarlar. |
Context |
HttpContextSahip denetiminin örneğini alır. (Devralındığı yer: DataSourceExpression) |
DataSource |
Sahip denetimiyle ilişkili veri kaynağı nesnesini alır. (Devralındığı yer: DataSourceExpression) |
IsTrackingViewState |
Bir veri kaynağı ifadesi nesnesinin görünüm durumu değişikliklerini izlemediğini gösteren bir değer alır. (Devralındığı yer: DataSourceExpression) |
Owner |
Sahip denetimini alır. (Devralındığı yer: DataSourceExpression) |
ViewState |
StateBagGeçerli görünüm durumu bilgilerini içeren sınıfın bir örneğini alır. (Devralındığı yer: DataSourceExpression) |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetQueryable(IQueryable) |
Sorguyu veri kaynağından alır. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
LoadViewState(Object) |
, DataSourceExpression Kalıcı olması gereken nesne içindeki değerlerin durumunu yükler. (Devralındığı yer: DataSourceExpression) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
SaveViewState() |
Nesnenin geçerli görünüm durumunu kaydeder DataSourceExpression . (Devralındığı yer: DataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
Nesnenin HTTP bağlamını DynamicRouteExpression ayarlar. |
SetDirty() |
Nesneyi, DataSourceExpression durumu görünüm durumuna kaydedilecek şekilde işaretler. (Devralındığı yer: DataSourceExpression) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
TrackViewState() |
DataSourceExpressionDeğişikliklerin StateBag veri kaynağı ifade nesnesi için nesne üzerinde depolanabilmesi için nesnenin görünüm durumu değişikliklerini izler. (Devralındığı yer: DataSourceExpression) |
Belirtik Arabirim Kullanımları
IStateManager.IsTrackingViewState |
Bir sınıf tarafından uygulandığında, bir veri kaynağı ifadesi nesnesinin görünüm durumu değişikliklerini izlemediğini gösteren bir değer alır. (Devralındığı yer: DataSourceExpression) |
IStateManager.LoadViewState(Object) |
Bir sınıf tarafından uygulandığında, veri kaynağı ifade nesnesinin daha önce kaydedilen görünüm durumunu yükler. (Devralındığı yer: DataSourceExpression) |
IStateManager.SaveViewState() |
Bir sınıf tarafından uygulandığında, nesnenin geçerli görünüm durumunu kaydeder DataSourceExpression . (Devralındığı yer: DataSourceExpression) |
IStateManager.TrackViewState() |
Bir sınıf tarafından uygulandığında, DataSourceExpression değişikliklerin StateBag veri kaynağı ifade nesnesi için nesne üzerinde depolanabilmesi için nesnenin görünüm durumu değişikliklerini izler. (Devralındığı yer: DataSourceExpression) |