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
- 继承
- 实现
示例
以下示例演示如何在控件中DynamicQueryStringParameterGridView显示数据时使用 对象作为筛选器。 控件 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 添加到页面,并且必须使用 方法向控件 DynamicDataManager 注册数据绑定控件 DynamicDataManager.RegisterControl 。
请参阅此功能的运行时代码示例: 运行。
构造函数
DynamicQueryStringParameter() |
初始化 DynamicQueryStringParameter 类的新实例。 |
属性
ConvertEmptyStringToNull |
获取或设置一个值,该值指示在 Parameter 对象绑定到的值为 Empty 时是否应将其转换为 |
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 实例的 CLR 类型等效的 Parameter 值。 (继承自 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) |