Поделиться через


общие функции узла

3 Функции, общие для всем узлам представления данных.

  • Идентификатор узла

  • Отображаемое имя узла

  • Дочерние элементы узла

Идентификатор узла

2 Типа идентификаторы узлов в зависимости от контекста, в котором он используется. Идентификаторы узлов, которые определены для статических узлов, узлов, не имеющих базовые объекты, содержащие другое значение, чем идентификаторы узлов, определенные для non-статических узел-узлов, которые содержат основные объекты.

Обратите внимание, что ссылка на идентификатор узла соответствующий атрибут nodeId, указанному в схеме XML DataViewSupport.

Идентификатор узла для статических узлов

Идентификатор узла статического узла является частью полного имени не статического узла, представляющее путь, который привел к данному узлу. нестатический Например, следующий код представляет полное имя (полный путь) таблицы "авторы", которая нестатический узел и содержит узел "таблицы": статический "/Tables/UserTables/Table [pubs.dbo.authors]".

В этом случае идентификатор узла "/Tables/UserTables/", поскольку это путь это ведет к узлу в вопросе.

Для описания формата полного имени узла, см. FullName.

Идентификатор узла для Non-Статических узлов

Однако идентификатор узла не статического узла представляет узел, содержащий свойства для выбора объектов под ним. Этот узел обычно родительский узел объектов, которые должны быть выбраны. В частности, процесс выбора объекта выполняет поиск следующего идентификатор узла родительского узла в иерархии представления, которая содержит свойства для выбора объектов, то есть, если первый родительский элемент не передает эти свойства, расмотрено идентификатор родительского узла следующего вверх в иерархии до тех пор, пока уточненный родительский элемент не найден.

Например, предположим, что нестатический узел таблицы существует в иерархии представления "авторов с именем", содержит 2 столбца "au_id" и "au_name". Эта таблица и другие таблицы в узле "таблицы" является статическим. Чтобы выбрать указанные столбцы, клиент должен указать идентификатор узла родительского элемента выделения столбца, в этом примере идентификатор узла выделения таблиц. XML ниже показано в этом примере.

<StaticNode nodeId="Tables">
   <Children>
      <Selection type="Table">
         <SelectionNode nodeId="Table">
            <Children>
               <Selection type="Column" restrictions="{Table.Name}">
               ...
               </Selection>
            </Children>
         </SelectionNode>
      </Selection>
   </Children>
</StaticNode>

Отображаемое имя узла

Узлы иерархии могут иметь отображаемое имя, отображаемое со своим значком в Visual Studio Обозреватель серверов. Только статические узлы, включая статические узлы подключения, требуют отображаемого имени, так как оно может быть выведен для других типов узлов.

Чтобы включить отображаемое имя узла, воспользуйтесь DisplayName элемент. Это позволяет определить имя узла, как показано в интегрированной средой разработки, а также определить способ форматирования отображаемое имя. (Для узла подключения, вызывается соответствующий элемент InitialDisplayName элемент поскольку отображаемое имя для узла соединения может быть изменено пользователем.) Форматирование отображаемое имя или для использования простого содержимого строки или для ссылки на ресурс, предоставляемый разделе ресурсов XML.

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

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

Пример кода ниже показано репрезентивное XML для управления условной приложение отображаемого имени, как описано выше в сценарии.

<SelectionNode>
    <DisplayName when="NOT ({Schema} = {Database.UserName})">
        {Name} ({Schema})
    </DisplayName>
</SelectionNode>

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

В данном примере отсутствие по умолчанию отображаемое имя, а формат имени указанного условным выражением. Это разрешено для узлов подключения объекта и узлов выделения, поскольку эти типы узлов позволяют формат по умолчанию быть производным от базового объекта. Для статических узлов соединения, с другой стороны, схема которой требуется, по крайней мере, одно DisplayName элемент был указан.

Дочерние элементы узла

Узлы должны использовать Children элемент для определения их дочерние узлы.

3 Типа дочерних узлов:

  • Статический. Любой узел может иметь статический узел для дочернего элемента, в том числе другой статический узел. Например, "разрезанная коллекция базовых таблиц" может показывать "системные таблицы" и "пользовательские таблицы."

  • Выделение. Этот тип дочернего узла развернуть несколько дочерних узлов, основанных на выделенном фрагменте, перечисленных объектов с сервера. Для демонстрации этого, в представлении данных необходимо отобразить список таблиц из источника данных. Можно написать следующий код XML для этого:

    <StaticNode>
        <DisplayName>Tables</DisplayName>
        <Children>
            <Selection type="Table"/>
        </Children>
    </StaticNode>
    

    XML приведенное выше вызвало бы следующую иерархию для отображения:

    - Tables  
       - <Table 1>
       - <Table 2>
    - ...  
    

См. также

Основные понятия

узлы представления данных

Специальные возможности узла