DynamicQueryStringParameter 类

定义

通过检索查询字符串值,自动生成用于为数据源控件创建 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
继承
DynamicQueryStringParameter
实现

示例

以下示例演示如何在控件中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 时是否应将其转换为 null

(继承自 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 实例的 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)

适用于

另请参阅