• Microsoft .NET
  • ASP.NET
  • Создание динамического пользовательского интерфейса ASP.NET, управляемого данными

Создание динамического пользовательского интерфейса ASP.NET, управляемого данными - Просмотр динамических клиентских атрибутов пользователя

ОГЛАВЛЕНИЕ

Просмотр динамических клиентских атрибутов пользователя

Страница DefineClientAttributes.aspx включает в себя элемент управления GridView, перечисляющий динамические клиентские атрибуты пользователю, связанному с авторизированным клиентом. Данный GridView заполняется посредством элемента SqlDataSource, названного CustomAttributesDataSource. Свойству SelectCommand данного элемента управления источником данных назначается следующий запрос:

SELECT DynamicAttributesForClients.DynamicAttributeId, DynamicAttributesForClients.DataTypeId, DynamicAttributesForClients.AttributeName, DynamicAttributesForClients.SortOrder, DynamicAttributeDataTypes.DataTypeName

FROM DynamicAttributesForClients
   INNER JOIN DynamicAttributeDataTypes ON
      DynamicAttributesForClients.DataTypeId = DynamicAttributeDataTypes.DataTypeId

WHERE (DynamicAttributesForClients.CustomerId = @CustomerId)

ORDER BY DynamicAttributesForClients.SortOrder, DynamicAttributesForClients.AttributeName 

Обратите внимание на то, что он возвращает все записи из таблицы DynamicAttributesForClients для конкретного значения CustomerId. Он возвращает название типа данных для каждого атрибута путем объединения (join) с таблицей DynamicAttributeDataTypes. Наконец, он сортирует результат по колонке SortOrder в возрастающем порядке, при этом сортируя в алфавитном порядке по колонке AttributeName.

Нам необходимо указать значение для параметра @CustomerId. Это может быть сделано путем создания обработчика для события Selecting элемента SqlDataSource. Событие Selecting вызывается каждый раз, когда элемент управления источником выполняет свой запрос SelectCommand по отношению к базе данных. Следующий код обработчика события назначает значение параметра @CustomerId  в значение  CustomerId, ассоциированное с авторизированным клиентом:

Protected Sub CustomAttributesDataSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles CustomAttributesDataSource.Selecting
   e.Command.Parameters("@CustomerId").Value = Helpers.GetCustomerIdForLoggedOnUser()
End Sub 

Следующее изображение демонстрирует GridView в момент, когда его просматривают в обозревателе. Как вы могли уже заметить, GridView перечисляет специализированные клиентские атрибуты соответствующего пользователя.