DynamicQueryStringParameter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
透過擷取查詢字串值,自動產生用來對資料來源控制項建立 Where
子句的參數集合。
public ref class DynamicQueryStringParameter : System::Web::UI::WebControls::Parameter, System::Web::DynamicData::IWhereParametersProvider
public class DynamicQueryStringParameter : System.Web.UI.WebControls.Parameter, System.Web.DynamicData.IWhereParametersProvider
type DynamicQueryStringParameter = class
inherit Parameter
interface IWhereParametersProvider
Public Class DynamicQueryStringParameter
Inherits Parameter
Implements IWhereParametersProvider
- 繼承
- 實作
範例
下列範例示範如何在 控制項中 GridView 顯示資料時, DynamicQueryStringParameter 使用 物件做為篩選。 控制項 GridView 包含 TemplateField 物件,這個物件會使用外鍵值建立連結,以設定查詢字串值。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Init(object sender, EventArgs e)
{
// Registers the data-bound control with
// the DynamicDataManager control.
DynamicDataManager1.RegisterControl(ProductsGridView);
// Initializes the URL for the View All link
// to the current page.
ViewAllLink.NavigateUrl = Request.Path;
}
protected string GetFilterPath()
{
// Retrieves the current data item.
var productItem = (Product)GetDataItem();
if (productItem.ProductCategory != null)
{
// Creates a URL that has a query string value
// set to the foreign key value.
return Request.Path + "?ProductCategoryID="
+ productItem.ProductCategoryID.ToString();
}
return string.Empty;
}
protected string GetProductCategory()
{
// Returns the value for the Name column
// in the relationship table.
var productItem = (Product)GetDataItem();
if (productItem.ProductCategory != null)
{
return productItem.ProductCategory.Name;
}
return string.Empty;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>DynamicQueryStringParameter Example</title>
<link href="~/Site.css" rel="stylesheet" type="text/css" />
</head>
<body class="template">
<form id="form1" runat="server">
<div>
<h2>DynamicQueryStringParameter Example</h2>
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
AutoLoadForeignKeys="true" />
<asp:GridView ID="ProductsGridView" runat="server"
AutoGenerateColumns="false"
DataSourceID="ProductsDataSource"
AllowPaging="true"
CssClass="gridview">
<Columns>
<asp:DynamicField DataField="Name" />
<asp:DynamicField DataField="ProductNumber" />
<asp:DynamicField DataField="Color" />
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<a runat="server" href='<%# GetFilterPath() %>'>
<asp:Label runat="server" ID="ProductCategory" Text='<%# GetProductCategory() %>' />
</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<div class="bottomhyperlink">
<asp:HyperLink runat="server" ID="ViewAllLink" Text="View All Records" />
</div>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorksLT sample database. -->
<asp:LinqDataSource ID="ProductsDataSource" runat="server"
TableName="Products"
ContextTypeName="AdventureWorksLTDataContext" >
<WhereParameters>
<asp:DynamicQueryStringParameter Name="ProductCategory" />
</WhereParameters>
</asp:LinqDataSource>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
' Registers the data-bound control with
' the DynamicDataManager control.
DynamicDataManager1.RegisterControl(ProductsGridView)
' Initializes the URL for the View All link
' to the current page.
ViewAllLink.NavigateUrl = Request.Path
End Sub
Protected Function GetFilterPath() As String
' Retrieves the current data item.
Dim productItem = CType(GetDataItem(), Product)
If Not (productItem.ProductCategory Is Nothing) Then
' Creates a URL that has a query string value
' set to the foreign key value.
Return Request.Path + "?ProductCategoryID=" + productItem.ProductCategoryID.ToString()
End If
Return String.Empty
End Function
Protected Function GetProductCategory() As String
' Returns the value for the Name column
' in the relationship table.
Dim productItem = CType(GetDataItem(), Product)
If Not (productItem.ProductCategory Is Nothing) Then
Return productItem.ProductCategory.Name
End If
Return String.Empty
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>DynamicQueryStringParameter Example</title>
<link href="~/Site.css" rel="stylesheet" type="text/css" />
</head>
<body class="template">
<form id="form1" runat="server">
<div>
<h2>DynamicQueryStringParameter Example</h2>
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
AutoLoadForeignKeys="true" />
<asp:GridView ID="ProductsGridView" runat="server"
AutoGenerateColumns="false"
DataSourceID="ProductsDataSource"
AllowPaging="true"
CssClass="gridview">
<Columns>
<asp:DynamicField DataField="Name" />
<asp:DynamicField DataField="ProductNumber" />
<asp:DynamicField DataField="Color" />
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<a runat="server" href='<%# GetFilterPath() %>'>
<asp:Label runat="server" ID="ProductCategory" Text='<%# GetProductCategory() %>' />
</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<div class="bottomhyperlink">
<asp:HyperLink runat="server" ID="ViewAllLink" Text="View All Records" />
</div>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the AdventureWorksLT sample database. -->
<asp:LinqDataSource ID="ProductsDataSource" runat="server"
TableName="Products"
ContextTypeName="AdventureWorksLTDataContext" >
<WhereParameters>
<asp:DynamicQueryStringParameter Name="ProductCategory" />
</WhereParameters>
</asp:LinqDataSource>
</div>
</form>
</body>
</html>
備註
類別 DynamicQueryStringParameter 是由使用動態資料功能 ASP.NET 的頁面使用。 類別 DynamicQueryStringParameter 會藉由擷取查詢字串值,為數據表的主鍵、外鍵和布林資料行產生 物件的集合 Parameter 。
對於主鍵,您可以直接新增 DynamicQueryStringParameter 物件,而不需要提供任何其他參數。 動態資料會產生主鍵或索引鍵的參數。 對於外鍵或布林資料行,您必須將 Name 屬性設定為您想要篩選的資料行名稱。
若要使用 DynamicQueryStringParameter 類別,您必須將控制項新增 DynamicDataManager 至頁面,而且必須使用 方法向 控制項註冊資料繫結控制項 DynamicDataManagerDynamicDataManager.RegisterControl 。
請參閱此功能的執行時間程式碼範例: 執行。
建構函式
DynamicQueryStringParameter() |
初始化 DynamicQueryStringParameter 類別的新執行個體。 |
屬性
ConvertEmptyStringToNull |
取得或設定值,該值指示是否應將 Parameter 物件繫結至的值轉換成 |
DbType |
取得或設定參數的資料庫型別。 (繼承來源 Parameter) |
DefaultValue |
指定參數的預設值,當呼叫 Evaluate(HttpContext, Control) 方法時,要繫結的值應是此參數未初始化的值。 (繼承來源 Parameter) |
Direction |
表示此 Parameter 物件是否用來將值繫結至控制項,或是這個控制項是否可用來變更該值。 (繼承來源 Parameter) |
IsTrackingViewState |
取得值,指出 Parameter 物件是否正在將變更儲存到它的檢視狀態。 (繼承來源 Parameter) |
Name |
取得或設定參數的名稱。 (繼承來源 Parameter) |
Size |
取得或設定參數的大小。 (繼承來源 Parameter) |
Type |
取得或設定參數的類型。 (繼承來源 Parameter) |
ViewState |
取得狀態資訊的字典,允許您在相同頁面的多個要求之間,儲存和還原 Parameter 物件的檢視狀態。 (繼承來源 Parameter) |
方法
Clone() |
傳回目前 Parameter 執行個體的複製。 (繼承來源 Parameter) |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
Evaluate(HttpContext, Control) |
在所有情況下都擲回 InvalidOperationException 例外狀況。 |
GetDatabaseType() |
取得 DbType 值,該值等於目前 Parameter 執行個體的 CLR 型別。 (繼承來源 Parameter) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
GetWhereParameters(IDynamicDataSource) |
傳回透過擷取查詢字串值對資料表的資料行自動產生的 Parameter 物件集合。 |
LoadViewState(Object) |
將資料來源檢視還原成之前所儲存的檢視狀態。 (繼承來源 Parameter) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
OnParameterChanged() |
呼叫 OnParametersChanged(EventArgs) 集合的 ParameterCollection 方法,該集合包含給定的 Parameter 物件。 (繼承來源 Parameter) |
SaveViewState() |
儲存自頁面回傳至伺服器以來 Parameter 物件檢視狀態的變更。 (繼承來源 Parameter) |
SetDirty() |
標記 Parameter 物件,以便將其狀態記錄在檢視狀態中。 (繼承來源 Parameter) |
ToString() |
將這個執行個體的值轉換為它的相等字串表示。 (繼承來源 Parameter) |
TrackViewState() |
會造成 Parameter 物件追蹤其檢視狀態變更,以將這些變更儲存在控制項的 ViewState 物件中,並持續存取相同頁面的其他要求。 (繼承來源 Parameter) |
明確介面實作
ICloneable.Clone() |
傳回目前 Parameter 執行個體的複製。 (繼承來源 Parameter) |
IStateManager.IsTrackingViewState |
取得值,指出 Parameter 物件是否正在將變更儲存到它的檢視狀態。 (繼承來源 Parameter) |
IStateManager.LoadViewState(Object) |
將資料來源檢視還原成之前所儲存的檢視狀態。 (繼承來源 Parameter) |
IStateManager.SaveViewState() |
儲存自頁面回傳至伺服器以來 Parameter 物件檢視狀態的變更。 (繼承來源 Parameter) |
IStateManager.TrackViewState() |
會造成 Parameter 物件追蹤其檢視狀態變更,以將這些變更儲存在控制項的 ViewState 物件中,並持續存取相同頁面的其他要求。 (繼承來源 Parameter) |