Відображення вмісту результати запиту веб частина у вигляді сітки / Таблиці

Огляд і мета

З коробки, ЛИШАЙНИК’ Веб-частина запиту вмісту (CQWP) відображає результати в формат списку, аналогічні результати пошуку. Також можливе для відображення результатів у формі таблиці (тобто. Формат HTML-таблиці). Сітка форматами є краще в деяких обставин. Я описую, як добитися цього ефекту в цій статті.

Бізнес-сценарій

Я працював з клієнтом на в масштабах підприємства свиті МОСС. Ми розробили іх таксономії, така, що проектів першого класу громадян в ієрархії і мають свій власний сайт верхнього рівня. Менеджери проектів вести список singleton відомості про проект, Наприклад, заголовок, бюджет, очікується завершення дата, Решта бюджету та інші поля тип зведення. Від "Сінглтон" Я маю на увазі за настроюваним списком SharePoint гарантовано містять лише один елемент. Спрощено, це виглядає так:

зображення

Технічний підхід, так само, як описано Тут (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). На CQWP використовує XSL-перетворення випромінювати HTML для веб-переглядача для візуалізації.

Я завжди уявити собі результат перш ніж поринути у XSL, оскільки XSL кошмар. Ось мій бажаного результату:

зображення

HTML наступним чином генерує цього результату:

<HTML>
 <тіло>
 <Центр>
 <Таблиця кордону= 1>

<!-- Етикетки->
 <TR BGCOLOR= синій>
 <TD><шрифт колір= білий><b>Назва проекту</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Повна дата</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Бюджет</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Фактичні витрати</b></шрифт></TD>
 <TD><шрифт колір= білий><b>Загальний стан</b></шрифт></TD>
 </TR>

<TR>
 <TD>Re-wire комп'ютерний зал.</TD>
 <TD Вирівняти= вправо>02/01/08</TD>
 <TD Вирівняти= вправо>22,500.00</TD>
 <TD Вирівняти= вправо>19,000.00</TD>
 <TD>Триває</TD>
 </TR>

<TR>
 <TD>Надання серверів для оновлення SQL</TD>
 <TD Вирівняти= вправо>04/01/08</TD>
 <TD Вирівняти= вправо>7,500.00</TD>
 <TD Вирівняти= вправо>0.00</TD>
 <TD>Заплановано</TD>
 </TR>

</Таблиця>
 </Центр>
 </тіло>
</HTML>

Підхід

Виконайте такі дії, щоб створити сітку:

  1. Визначення учасників Грід (рядки/стовпці).
  2. Визначити та створення необхідних сайт стовпців.
  3. Створення сайтів sub для проектів і singleton списки.
  4. Додати до CQWP на веб-сторінку і налаштувати його для пошуку ваших списків.
  5. Змінити на CQWP XML збирати додаткові стовпці.
  6. Змінити XSL для створення таблиці.

Я збираюся зосередитися на номер шість. Цифри, один через чотири роки є прямий вперед і те, що вже зроблено будь-якого користувача CQWP. Номер п'ять був добре документовані за інших, включаючи ця вичерпний знімок екрана Ладена стаття з MSDN Тут (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) і Хізер Соломон блог Тут (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Гайки і Болти

Почати та здійснити кроки один-п'ять згідно з MSDN документації та Хізер Соломон статті.

На даний момент, Додавання ваших CQWP на сторінку і у вас є свій <CommonViewFields> налаштований в разі необхідності.

Наступні кроки звичайна, Я отримую ці проміжні результати:

1. Створити тип вмісту, templatized особливий список для цього типу вмісту та двох сайтів. Ось типу вмісту:

зображення

Ось структура сайту:

зображення

2. Додати до CQWP після створення мого проекту підсайтів і singleton списки резюме проекту:

зображення

3. Додати додаткову інформацію, я хочу, через що <CommonViewFields>:

        <майно Ім’я="CommonViewFields" тип="рядок">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</майно>

Зверніть увагу, що я повинен був тримати всі поля властивостей на один рядок, або він не буде працювати (CQWP б сказати мені, що запит повернув жодних елементів).

4. На даний момент, Ми готові вийти за рамки статті MSDN і фліп Хізер Соломон статтю. Виконайте її дії, починаючи поблизу крок #5 Створення настроюваного / unghosted версія ItemStyle.xsl. Я слідувати порадам Хізер, вгору через крок 11 і отримати ці проміжні результати:

4.1: Назва мого XSL-шаблону наступним чином:

<перетворення XSL:ім'я шаблону = "сітки" матч = "рядок[@Style = "Сітка"]" режим = "itemstyle">

Я також трохи змінити її запропонував <перетворення XSL:для кожного …> шляхом додавання до <br /> тег, щоб забезпечити cleaner лістингу:

    <перетворення XSL:для кожного Виберіть="@*">
      P:<перетворення XSL:значення з Виберіть="Ім’я()" /><br/>
    </перетворення XSL:для кожного>

4.2: Я змінити веб-частини, сторінку вигляд і виберіть пункт мої "сітки" стиль:

зображення

Застосувати зміни, і ось результат:

зображення

Ми можемо бачити з вище, що поля ми хочемо (Назва проекту, рахунок, статус, д) доступні для нас, щоб використовувати, коли ми випромінюють HTML. Не тільки це, але ми бачимо імена, за допомогою якого ми повинні посилатися на ці стовпці в XSL. Наприклад, Ми посилання стан проекту як "Project_x005F_x0020_Name".

На даний момент, Ми відійти від блог Heather's і від плечей ці гіганти, Я додаю мої власні трохи.

ContentQueryMain.xsl

ПРИМІТКА: Коли внесення змін до ContentQueryMain.xsl як ItemStyle.xsl, Ви повинні перевірити ці файли назад в, перш ніж ви побачити ефект від зміни.

Для цілей Грід рішень, ЛИШАЙНИК використовує два різні XSL-файли, виробляти результати, які ми бачимо з за CQWP. Генерувати попередній біт виводу, Ми змінили ItemStyle.xsl. ЛИШАЙНИК фактично використовує інший файл XSL, ContentQueryMain.xsl до в поєднанні з ItemStyle.xsl генерувати його HTML. Як випливає з її назви, ContentQueryMain.xsl є головним"" XSL, яка контролює загальний потік перекладу. Це повторюється через всіх знайдених елементів та їх по черзі шаблони в ItemStyle.xsl. Ми будемо змінювати ItemStyle.xsl генерувати відкриту <Таблиця> Тег перед випромінюють перший рядок даних і закриття <Таблиця> Тег після випускають останній рядок. Для досягнення цієї мети, ContentQueryMain.xsl модифікація пройти два параметри до нашого "сітки" шаблон у ItemStyle.xsl, "останній рядок" і "поточний рядок". ItemStyle.xsl використовує дані умовно випромінювати необхідні Теги.

За допомогою техніки Хізер Соломона, ми знайти ContentQueryMain.xsl. Він знаходиться на тому ж місці, як ItemStyle.xsl. Цей знімок екрана повинен допомогти:

зображення

Нам необхідно внести наступні зміни:

  • Змінити xsl-шаблону, "CallItemTemplate" що дійсно викликає шаблон нашого сітки в ItemStyle.xsl. Ми пройдемо два параметри сітки шаблон, так що вона буде мати даних, він повинен генерувати умовно відкриття і закриття <Таблиця> Мітки.
  • Змінити ще трохи ContentQueryMain.xsl, який називає "CallItemTemplate" Щоб передати його "LastRow" параметр, так що LastRow може бути переданий шаблон нашого сітки.

Знайти шаблон з іменем «OuterTemplate.CallItemTemplate" визначені нитка:

  <перетворення XSL:Шаблон Ім’я="OuterTemplate.CallItemTemplate">

Замінити весь шаблон наступним чином:

  <перетворення XSL:Шаблон Ім’я="OuterTemplate.CallItemTemplate">
    <перетворення XSL:парам Ім’я="CurPosition" />

    <!--
      Додати "LastRow" параметр.
      Ми тільки використовувати його, коли елемент стилю перевалу в "Сітка".
    -->
    <перетворення XSL:парам Ім’я="LastRow" />

    <перетворення XSL:вибрати>
      <перетворення XSL:Коли тест="@Style = 'NewsRollUpItem'">
        <перетворення XSL:застосовувати шаблони Виберіть="." режим="itemstyle">
          <перетворення XSL:з парам Ім’я="EditMode" Виберіть="$cbq_iseditmode" />
        </перетворення XSL:застосовувати шаблони>
      </перетворення XSL:Коли>
      <перетворення XSL:Коли тест="@Style = 'NewsBigItem'">
        <перетворення XSL:застосовувати шаблони Виберіть="." режим="itemstyle">
          <перетворення XSL:з парам Ім’я="CurPos" Виберіть="$CurPosition" />
        </перетворення XSL:застосовувати шаблони>
      </перетворення XSL:Коли>
      <перетворення XSL:Коли тест="@Style = 'NewsCategoryItem'">
        <перетворення XSL:застосовувати шаблони Виберіть="." режим="itemstyle">
          <перетворення XSL:з парам Ім’я="CurPos" Виберіть="$CurPosition" />
        </перетворення XSL:застосовувати шаблони>
      </перетворення XSL:Коли>

      <!--
              Пройти поточну позицію і lastrow до шаблону itemstyle.xsl сітка.
              ItemStyle.xsl використовуватиме які випромінюють відкритою і закриття <Таблиця> Мітки.
      -->
      <перетворення XSL:Коли тест="@Style = "Сітка"">
        <перетворення XSL:застосовувати шаблони Виберіть="." режим="itemstyle">
          <перетворення XSL:з парам Ім’я="CurPos" Виберіть="$CurPosition" />
          <перетворення XSL:з парам Ім’я="Останнє" Виберіть="$LastRow" />
        </перетворення XSL:застосовувати шаблони>
      </перетворення XSL:Коли>

      <перетворення XSL:в іншому випадку>
        <перетворення XSL:застосовувати шаблони Виберіть="." режим="itemstyle">
        </перетворення XSL:застосовувати шаблони>
      </перетворення XSL:в іншому випадку>
    </перетворення XSL:вибрати>
  </перетворення XSL:Шаблон>

Коментарі підхожий пояснювальний зміни.

Звичайно, "OuterTemplate.CallItemTemplate" сама називається з іншого шаблону. Знайдіть цей шаблон за допомогою функції пошуку для цього текстового рядка:

<перетворення XSL:Шаблон Ім’я="OuterTemplate.Body">

Перегляньте інструкції в OuterTemplate.Body і вставляти параметра LastRow наступним чином (показано як коментар курсивом):

<перетворення XSL:дзвінок шаблон Ім’я="OuterTemplate.CallItemTemplate">
  <перетворення XSL:з парам Ім’я="CurPosition" Виберіть="$CurPosition" />
  <!-- Вставити параметром LastRow. -->
  <перетворення XSL:з парам Ім’я="LastRow" Виберіть="$LastRow"/>
</перетворення XSL:дзвінок шаблон>

Після всіх цих, Ми, нарешті, є речі створені належним чином так, що нашими ItemStyle.xsl може випромінювати <Таблиця> Мітки у потрібному місці.

ItemStyle.Xsl

ПРИМІТКА: Знову, прибуття після внесення змін, щоб побачити ефект цих змін ItemStyle.xsl.

Ми маємо два завдання тут:

  • Замінити весь шаблон сітки. Ви можете копіювати/вставити знизу.
  • Додати деякі фетиш за межами визначенням шаблону, який дозволяє "formatcurrency" шаблон для роботи. (Ви можете сказати, що в мене є хитким ручкою на XSL).

Перший, у верхній частині ItemStyle.xsl, додати наступний рядок:

  <!-- Деякі фетиш, що дає нам можливість відображення США. валюти. -->
  <перетворення XSL:десятковий формат Ім’я="Персонал" цифра="D" />

  <перетворення XSL:Шаблон Ім’я="За промовчанням" матч="*" режим="itemstyle">

Зверніть увагу, що я додав його безпосередньо перед тим, як на <перетворення XSL:ім'я шаблону = "типовий" …> визначення.

Наступний, повернутися до шаблон нашого сітки. Замінити весь шаблон сітки наведений нижче код. Це ретельно прокоментував, але, не соромтеся, напишіть мені або залишити коментар на моєму блозі, якщо у вас є питання.

  <перетворення XSL:Шаблон Ім’я="Сітка" матч="Рядок[@Style = "Сітка"]" режим="itemstyle">

    <!--
      ContentMain.xsl проходить CurPos і останній.
      Ми використовуємо ці умовно випромінювати відкритою і закриття <Таблиця> Мітки.
    -->
    <перетворення XSL:парам Ім’я="CurPos" />
    <перетворення XSL:парам Ім’я="Останнє" />

    <!-- Нижче подано змінні, незміненій від стандартних ItemStyle.xsl -->
    <перетворення XSL:Змінна Ім’я="SafeImageUrl">
      <перетворення XSL:дзвінок шаблон Ім’я="OuterTemplate.GetSafeStaticUrl">
        <перетворення XSL:з парам Ім’я="UrlColumnName" Виберіть="'ImageUrl'"/>
      </перетворення XSL:дзвінок шаблон>
    </перетворення XSL:Змінна>
    <перетворення XSL:Змінна Ім’я="SafeLinkUrl">
      <перетворення XSL:дзвінок шаблон Ім’я="OuterTemplate.GetSafeLink">
        <перетворення XSL:з парам Ім’я="UrlColumnName" Виберіть="'LinkUrl'"/>
      </перетворення XSL:дзвінок шаблон>
    </перетворення XSL:Змінна>
    <перетворення XSL:Змінна Ім’я="DisplayTitle">
      <перетворення XSL:дзвінок шаблон Ім’я="OuterTemplate.GetTitle">
        <перетворення XSL:з парам Ім’я="Назва" Виберіть="@Title"/>
        <перетворення XSL:з парам Ім’я="UrlColumnName" Виберіть="'LinkUrl'"/>
      </перетворення XSL:дзвінок шаблон>
    </перетворення XSL:Змінна>
    <перетворення XSL:Змінна Ім’я="LinkTarget">
      <перетворення XSL:Якщо тест="@OpenInNewWindow = "True"" >_ blank</перетворення XSL:Якщо>
    </перетворення XSL:Змінна>

    <!--
      Тут ми визначаємо змінну, "tableStart".  Це містить HTML-код, який ми використовуємо для визначення відкриття таблиці, а також підписи стовпців.  Зверніть увагу, що якщо CurPos = 1, Вона включає в себе HTML теги CDATA.
      В іншому випадку, вона буде порожня.

      Значення tableStart є emited кожного разу, коли ItemStyle називається через ContentQueryMain.xsl.
    -->
    <перетворення XSL:Змінна Ім’я="tableStart">
      <перетворення XSL:Якщо тест="$CurPos = 1">
        <![CDATA[
        <межу таблиці = 1>
          <TR-bgcolor = "blue">
            <TD><колір шрифту = "Біле"><b>Назва проекту</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Повна дата</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Бюджет</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Фактичні витрати</b></шрифт></TD>
            <TD><колір шрифту = "Біле"><b>Загальний стан</b></шрифт></TD>
          </TR>
        ]]>
      </перетворення XSL:Якщо>
    </перетворення XSL:Змінна>

    <!--
      Ще одна змінна, tableEnd просто визначає закриття таблиці тег.

      Як і у tableStart, Це завжди emited.  Саме тому його значення призначено умовно основі чи ми вже були передані останній рядок за ContentQueryMain.xsl.
    -->
    <перетворення XSL:Змінна Ім’я="tableEnd">
      <перетворення XSL:Якщо тест="$CurPos = $Last">
        <![CDATA[ </Таблиця> ]]>
      </перетворення XSL:Якщо>
    </перетворення XSL:Змінна>

    <!--
      Завжди виділяють вміст tableStart.  Якщо це не перший рядок, який прийняв до нас за ContentQueryMain.xsl, Потім ми знаємо його значення буде пустою.

      Вимкнути виводу втечі, тому що коли tableStart вона не порожні, Вона включає в себе фактичні HTML, які ми хочемо бути надані у браузері.  Якщо ми не кажи XSL аналізатор відключити виводу втечі, він буде генерувати такі речі, як"&lt;Таблиця&gt;" Замість того, щоб"<Таблиця>".
    -->
    <перетворення XSL:значення з Виберіть="$tableStart" вимкнути виводу втечі="Так"/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <перетворення XSL:значення з Виберіть="@Project_x005F_x0020_Name"/>
      </TD>

      <TD Вирівняти="право">
        <перетворення XSL:значення з Виберіть="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD Вирівняти="право">
        <перетворення XSL:дзвінок шаблон Ім’я="formatcurrency">
          <перетворення XSL:з парам Ім’я="значення" 
Виберіть="@Project_x005F_x0020_Budget"></перетворення XSL:з парам> </перетворення XSL:дзвінок шаблон> </TD> <TD Вирівняти="право"> <перетворення XSL:дзвінок шаблон Ім’я="formatcurrency"> <перетворення XSL:з парам Ім’я="значення" Виберіть="@Project_x005F_x0020_Expenses">
</перетворення XSL:з парам> </перетворення XSL:дзвінок шаблон> </TD> <TD> <перетворення XSL:значення з Виберіть="@Project_x005F_x0020_Status"/> </TD> <!-- Всі наступні закоментовано прояснити речі. Однак, її повернути і все це в за <TD> щоб побачити його вплив. --> <!-- <DIV id = "linkitem" клас = "пункт"> <перетворення XSL:Якщо тест = "-довжина рядка($SafeImageUrl) != 0"> <DIV клас = "зображення області ліворуч"> <href = "{$SafeLinkUrl}" цільових = "{$LinkTarget}"> <IMG клас = "зображення фіксованої ширини" SRC = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </на> </DIV> </перетворення XSL:Якщо> <DIV клас = "посилання елемент"> <перетворення XSL:дзвінок шаблон
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$SafeLinkUrl}"
цільових = "{$LinkTarget}" Назва = "{@LinkToolTip}"> <перетворення XSL:значення з виберіть = "$DisplayTitle" /> </на> <DIV клас = "Опис"> <перетворення XSL:значення з select="@Description" /> </DIV> </DIV> </DIV>
--> </TR> <!-- Випромінюють закриття таблиці тег. Якщо ми не на останньому рядку, Це буде порожнім. --> <перетворення XSL:значення з Виберіть="$tableEnd" вимкнути виводу втечі="Так"/> </перетворення XSL:Шаблон> <перетворення XSL:Шаблон Ім’я="formatcurrency"> <перетворення XSL:парам Ім’я="значення" Виберіть="0" /> <перетворення XSL:значення з Виберіть='Формат номера($значення, "$DDD,DDD,DDD.DD", "персонал")' /> </перетворення XSL:Шаблон>

22 думки про «Відображення вмісту результати запиту веб частина у вигляді сітки / Таблиці

  1. Андреас

    А-а… Саме тому, що я назвав мій стиль списку по-різному і не розумію, що у на ContentQueryMain.xsl це перевіряє наявність "стиль":

    <перетворення XSL:Коли test="@Style='NameOfMyStyle'">

    З цим перейменовано вона працювала. 🙂

  2. Андреас

    Це майже працював для мене: Мені вдалося вихід на </Таблиця> кінець тега правильно, але відправною тег не вистачає. Мені здається, що тест = "$CurPos = 1" не Повертає true. Але чому?

  3. Ананд Сінгх Рават

    Великий піст. Павло, я зробив все вище. У мене є запит, як я можу досягти сума "загальна ФАКТИЧНА затрати" або сума вартості дві колонки.

  4. Ліза

    У вас зробити будь-яку роботу зі створення користувацьких ContentQueryMain і ItemStyle xsl-файли? Я прошу причина в тому, що я не хочу турбуватися про мою користувацькі стилі перезапису із виправлень та оновлень. У вас є приклади? Я спробував рішень ідентична копія на ContentQueryMain.xsl та завантаження що нового настроюваного копія Бібліотека стилів. Коли поставити посилання на xsl-файл в на .webpart MainXslLink майна, Я отримую 401 відсутня Авторизація. Користувацький XSL-текст файл опубліковану версію і кожна людина має доступ на читання до нього.

  5. Грег Шерідан

    Привіт, Це було дійсно корисно проводки. Він у мене всі робочі, і також реалізовані Майк Браун змін, так що це груп
    результати таблиці за все, що я вибираю як Групувати за параметром у на CQWB властивостях.
    Я зробив назва посилання також, так, він прекрасно працює. Я до сих пір одна проблема, Хоча. Я впевнений, групування результатів за ім'я сайту. Всередині таблиці, Це групуються красиво, і це виглядає здорово, але це ще друк на всі групи
    імена(у моєму випадку імена сайтів) над таблицею. Хто-небудь знає, як позбутися цих?
    Дякую,
    Грег

  6. Без імені

    Nice статті. Я зумів дати мій стіл зовнішній вигляд за замовчуванням списки Sharepoint, аналізуючи вихідний код у списку. Нижче наведено основні блоки HTML, необхідні, щоб вона розмістилася в ItemStyle:

    <Ширину ТАБЛИЦІ = "100%" клас = "ms-listviewtable" межа = 0 cellspacing = 0 cellpadding = 1 dir = "Нічого не">

    <!–ВЕРХНІЙ КОЛОНТИТУЛ–>
    <TR-клас = "ms-viewheadertr" VALIGN = ТОП>
    <ГО nowrap сфери = "col" клас = "ms-vh2"><DIV стиль "ширина =:100%;позиція:відносні;ліворуч:0;Топ:0;">
    <Стиль ТАБЛИЦІ "ширина =:100%;" CtxNum = "1" Висота = "100%" cellspacing = 1 cellpadding = 0 клас = "ms-unselectedtitle">
    <TR>
    <TD ширина = "100%" Клас = "ms-в. б." nowrap>
    Texte du титр ici

    </TD>
    <TD стиль = "Позиція:Абсолютний;">
    </TD>
    </TR>
    </ТАБЛИЦЯ></DIV>
    </ГО>

    <!–Повторіть для всіх клітинки заголовка–>
    </TR>

    <!– Таблиці даних –>
    <TR-клас = "">
    <!–Стовпець даних, Використовуйте Павла код для одного з гіперпосиланням –>
    <TD клас = "ms-vb2">Дані тут</TD>

    <!–Пустий стовпець–>
    <TD клас = "ms-vb2">
    <проліт dir = None></Тривалість><
    /TD>

    <!–Дата стовпця–>
    <TD клас = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***Альтернативний рядок – Використовувати нові XSL змінна, яка буде вставлено альтернативний клас заснований на поточному рядку за модулем 2–>
    <TR-клас = "ms чергування">

    </TR>
    </ТАБЛИЦЯ>

  7. Майк Браун
    Золтан,
    Я працював на те ж питання, як ви. Я хотів, щоб всі мої елементів, що відображається у згрупованому манері, а не просто lits. Ось як я це досягнуто.
    ContentQueryMain.xsl
    <перетворення XSL:Коли test="@Style='Grid'">
    <перетворення XSL:застосовувати шаблони виберіть = "." режим = "itemstyle">
    <перетворення XSL:з парам ім'я = "CurPos" Виберіть = "$CurPosition" />
    <перетворення XSL:з парам ім'я = "останнє," Виберіть = "$LastRow" />
    <!–додати цей новий розділ пройти в параметрі із зазначенням нову групу почалася–>
    <перетворення XSL:з парам ім'я = "StartNewGroup" SELECT="@__begingroup" />
    </перетворення XSL:застосовувати шаблони>
    </перетворення XSL:Коли>
    ItemStyle.xsl
    Додати ваш параметра
    <перетворення XSL:парам ім'я = "StartNewGroup" />
    Додати цей текст як перший рядок даних
    <перетворення XSL:вибрати>
    <перетворення XSL:коли перевірити = "$StartNewGroup" істина "">
    <TR>
    <TD >
    <перетворення XSL:дзвінок шаблону name="OuterTemplate.GetGroupName">
    <перетворення XSL:з парам ім'я = "GroupName" SELECT="@*[Ім’я()= $Group]"/>
    <перетворення XSL:з парам ім'я = "GroupType" Виберіть = "$GroupType" />
    </перетворення XSL:дзвінок шаблон>
    </TD>
    </TR>
    </перетворення XSL:Коли>
    <перетворення XSL:в іншому випадку>
    </перетворення XSL:в іншому випадку>
    </перетворення XSL:вибрати>
    Це має піклуватися вашого групування питання у вашому сітки. Кожна група приступає до з нового рядка, що вказує ім'я групи. В моє рішення фактично додане порожнім <TD /> у даних для відступу його таким чином, а також групування виділявся набагато краще.
    Site1
    datacolumn1 datacolumn2 datacolumn3 та ін

    datacolumn1 datacolumn2 datacolumn3 та ін
    Site2
    datacolumn1 datacolumn2 datacolumn3 та ін
    Site3

    datacolumn1 datacolumn2 datacolumn3 та ін

    datacolumn1 datacolumn2 datacolumn3 та ін
    д.
  8. Золтан
    Здравствуйте Павла,
    Спасибо за пост, я зумів влаштувати мої результати запиту у вигляді сітки, що може бути дуже корисним. Однак, Я повинен піти далі і згрупувати мої результати, засновані на сайтах. На даний момент, імена сайтів є в порядку убування, і тоді є лише одна великій сітці, зібравши всі рядки з різних сайтів. Щось на зразок цього:
    Site1 ім'я
    Site2 ім'я
    Даних в Грід для всіх сайтів
    Будь-які ідеї про те, що я повинен змінити для того, щоб отримати мій даних наступним чином:
    Site1 ім'я
    Даних в Грід для Site1
    Site2 ім'я
    Даних в Грід для Site2
    Заранее спасибо,
    Золтан
  9. П'єр Жубер
    Фантастична пост, вирішити мою проблему, я мав.
    Моїм єдиним питанням відображення поля «призначено», Я налаштувати його з користувачем"" тип поля та імпортованих веб-частини відображається таке повідомлення про помилку:
    "Помилка вилучення даних для відображення в цій веб-частині."
    Я намагався за допомогою всі можливі поля типів, нічого іншого користувача"" він не відображає повідомлення про помилку, але я не бачу нічого в області. Тому я вважаю, тип поля користувача є правильною, так що я повинен відсутній параметр десь.
    Будь-які ідеї на цьому?
    З повагою
    П'єр
  10. Charftong
    Великий піст!!! Дуже і дуже корисно.
    Швидкий питання, у вас зробити будь-яку роботу після відображення поля «призначено» або ModifiedBy з присутністю? З різних причин, Всякий раз, коли я намагаюся, щоб dipslay призначені для поля в на CQWP, завжди відображає з як приклад "203;#Charf Tong". Я не можу знайти обхідний шлях.
  11. Дженніфер Девіс
    Пол
    Великий статті, Дякую. Я роблю щось дуже схожі, але для відображення посилання на сайті проекту, а не елемент списку. Наприклад, Ми маємо 25 сайти верхнього рівня проектів і кожен містити список з типів вмісту. Це назва проекту, Дивізія, Опис. Я хочу використовувати веб-частину запиту вмісту тягнути ці дані і домоглися успіху, крім того, що за промовчанням URL у мене йде до запису елемент у списку, і я дійсно це потрібно, щоб взяти мене на сайті проекту. Ви можете дати мені будь-які поради?
    Дякую
    Джен
  12. Paul Galvin
    Кірен,
    Я завжди використовую visual studio для редагування XSL. Готель пропонує гостям кольорове кодування, а також деякі хороші intellisense підтримки.
    –Пол
  13. Кіран пише:

    Привіт Павло,

    Під час роботи з xml/xsl і змісту запиту веб-частини, Ви знайшли будь-які хороші способи форматування вашої xslt? Намагаються внести зміни і перевірити дизайн виявляється правильно біль в у в * * тільки за допомогою текстового редактора…

    Усього найкращого

  14. Майкл Dipay
    Щодо питання я з минулого разу, де вона не відображаються зображення з подання сітки, але замість цього відображає текст (https://myweb.com/Marketing/images/icn-order.gif,). Мені вдасться вирішити її за допомогою SharePoint Designer, створюючи користувацьке подання і виберіть користувацькі стовпці, що я хочу, щоб відобразити. Я дізнався, що тип стовпця зображення відображаються у вигляді URL(кома) (Наприклад. https://myweb.com/Marketing/images/icn-order.gif,). Поточному форматі — це текст, так що я повинен змінити його до зображення з поширених xsl:значення з завдання-> Формат як рисунок. Ця зміна відображення настроювані зображення, що я хотів, щоб показати. Я скопіював код, щоб показати зображення ( <IMG кордону ="0" SRC = "{підрядок-перед(@IcnOrder, ‘, ‘)}" /> ) І у файлі ItemStyle.xsl я повинен змінити, @PICTURECOLUMNNAME в коді <IMG кордону ="0" SRC = "{підрядок-перед(@IcnOrder, ‘, ‘)}" /> . Потім зберегти його. Тепер мій стіл сітки результатів для відображення тексту, а також використовувати настроюване зображення введіть стовпці.
  15. Хелен
    Привіт Павло,
    Спасибо большое за статтю!
    Ви згадали, умовне форматування – "Ви також можете помістити в умовне форматування, зокрема як проекти, які перевищили свій бюджет червоним кольором." Ви часом не мають приклад коду для цього?
    Ще раз спасибі!
    Хелен
  16. Майкл Dipay
    Привіт Павло,
    Це була велика стаття і була здатна генерувати ті ж результати, як очікувалося. У мене є вимогою, щоб показати зображення в сітці, як одному з її стовпців. Не відображаються зображення на сітці, але замість цього відображає URL-адресу зображення з на (,) кома в кінці.
    (Наприклад. https://myweb.com/Marketing/images/icn-order.gif, )
    Я повинен використовувати зображення або зображення у тип поля CommonViewFields? (Наприклад. InternalColumnName, Зображення)
    Дякую,
    Майк
  17. Saji Ijiyemi

    Ваша посада є те, що я шукав. Однак, Я не можу змусити його працювати.

    У мене є документи, які зберігаються в різних doc. бібліотек, але класифікована використовуючи стовпець Користувальницькі клас (вибір: 1 або 2. Я хочу, щоб використовувати CQWP, щоб показати цих документів, на основі їх клас.
    Я був в змозі додати на CQWP, експортувати його СПД, Настроювання itemStyle.xls Показати настроювані поля в поданні списку. Однак, Я міг би не успішно передбачено реалізацію, що ви описали тут.

    Це стовпців, я хочу показати в моєму CQWP:

    Тип файлу (Щоб відобразити піктограму)
    Назву файлу
    Дата останнього змінення
    Модифіковані хто
    Витягнуто до
    Перевірив в коментарях

    Теперішній час у мене результат у формат списку. Змінення його у формат, talble.

    Дякую.

    Saji

Дати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *