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
Реализации

Примеры

В следующем примере показано, как использовать DynamicQueryStringParameter объект в качестве фильтра при отображении данных в элементе GridView управления. Элемент 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 метода.

См. пример кода во время выполнения этой функции: Run.

Конструкторы

DynamicQueryStringParameter()

Инициализирует новый экземпляр класса DynamicQueryStringParameter.

Свойства

ConvertEmptyStringToNull

Возвращает или задает значение, указывающее на необходимость преобразования значения, к которому привязан объект Parameter в null, если его значение равно Empty.

(Унаследовано от 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)

Применяется к

См. также раздел