Прокрутка в списке элементов один за другим
-
16-10-2019 - |
Вопрос
У меня есть список объявлений, и вместо того, чтобы отображать все объявления одновременно, их может быть довольно много, я хочу прокрутить их один за другим.
За пределами SharePoint есть довольно много методов, которые я бы использовал для достижения этого. Я бы использовал jQuery, если это возможно. Я использовал jQuery на сайте, но я хотел бы использовать карусель, и для этого список объявлений не может быть в таблице.
Итак, мне нужен одна из 3 вещей.
а) иметь возможность выводить данные, возможно, в веб -часть редактора контента через XSL? Это удалит структуру таблицы и заменит ее на неупорядоченный список. Мне не так жарко на XSL, и мне понадобится толчок в правильном направлении относительно того, как это достичь.
б) Найдите решение jQuery, которое может работать со структурой таблицы списка объявлений.
в) какое -то другое решение, о котором я не думал.
Есть идеи, ребята?
РЕДАКТИРОВАТЬ: Я попытался перейти по маршруту XSL с веб -частью формы данных.
Я использовал еще один DFWP для шаблона и изменил то, что мне нужно изменить. Это все равно выглядит близко к тому, что мне нужно? (Обратите внимание, что я получаю следующую ошибку :)
Невозможно отобразить эту веб -часть. Чтобы решить эту проблему, откройте эту веб-страницу в Windows SharePoint Services, совместимое с редактором HTML, такого как Microsoft Office SharePoint Designer. Если проблема устойчиво, свяжитесь с администратором веб -сервера.
Код
<WebPartPages:DataFormWebPart runat="server" SuppressWebPartChrome="False" Description="" PartImageSmall="" DataSourceID="" MissingAssembly="Cannot import
this Web Part." FrameType="TitleBarOnly" ConnectionID="00000000-0000-0000-0000-000000000000" DetailLink="" ExportControlledProperties="True" IsVisible="True"
AllowRemove="True" AllowEdit="True" ID="g_999db424_8180_48da_a7c7_7457a07205f9" Dir="Default" FrameState="Normal" ViewContentTypeId="" AllowConnect="True"
PageSize="-1" AllowMinimize="True" IsIncludedFilter="" ShowWithSampleData="False" ChromeType="TitleOnly" HelpMode="Modeless" ExportMode="All" ViewFlag="0"
Title="Courses I am attending" HelpLink="" AllowHide="True" AllowZoneChange="True" PartOrder="1" UseSQLDataSourcePaging="True" PartImageLarge=""
IsIncluded="True" NoDefaultStyle="TRUE" __MarkupType="vsattributemarkup" __WebPartId="{999DB424-8180-48DA-A7C7-7457A07205F9}" __AllowXSLTEditing="true"
WebPart="true" Height="" Width=""><DataSources>
<SharePoint:AggregateDataSource runat="server" IsSynchronous="" SeparateRoot="true" RootName="" RowsName=""
ID="Announcements"><Sources><SharePoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="<View></View>" UpdateCommand=""
InsertCommand="" DeleteCommand="" UseInternalName="True"><SelectParameters>
<asp:Parameter DefaultValue="{A6930BA9-B6E2-4D1D-A3FE-5379CE9F01E5}" Name="ListID"></asp:Parameter>
</SelectParameters>
<UpdateParameters>
<asp:Parameter DefaultValue="{A6930BA9-B6E2-4D1D-A3FE-5379CE9F01E5}" Name="ListID"></asp:Parameter>
</UpdateParameters>
<InsertParameters>
<asp:Parameter DefaultValue="{A6930BA9-B6E2-4D1D-A3FE-5379CE9F01E5}" Name="ListID"></asp:Parameter>
</InsertParameters>
<DeleteParameters>
<asp:Parameter DefaultValue="{A6930BA9-B6E2-4D1D-A3FE-5379CE9F01E5}" Name="ListID"></asp:Parameter>
</DeleteParameters>
</SharePoint:SPDataSource><SharePoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="<View></View>" UpdateCommand=""
InsertCommand="" DeleteCommand="" UseInternalName="True"><SelectParameters>
<asp:Parameter DefaultValue="{DEEE6EF9-4CCF-408B-A90F-89AD21FB0FD1}" Name="ListID"></asp:Parameter>
</SelectParameters>
<UpdateParameters>
<asp:Parameter DefaultValue="{DEEE6EF9-4CCF-408B-A90F-89AD21FB0FD1}" Name="ListID"></asp:Parameter>
</UpdateParameters>
<InsertParameters>
<asp:Parameter DefaultValue="{DEEE6EF9-4CCF-408B-A90F-89AD21FB0FD1}" Name="ListID"></asp:Parameter>
</InsertParameters>
<DeleteParameters>
<asp:Parameter DefaultValue="{DEEE6EF9-4CCF-408B-A90F-89AD21FB0FD1}" Name="ListID"></asp:Parameter>
</DeleteParameters>
</SharePoint:SPDataSource>
</Sources><Aggregate><concat name="data source"><datasource name="Announcements" id="0" Type="SPList"/></concat></Aggregate>
</SharePoint:AggregateDataSource>
</DataSources>
<ParameterBindings>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
<ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
<ParameterBinding Name="dvt_adhocmode" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_fieldsort" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_filterfield" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_sortdir" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_sortfield" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_sorttype" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_filterfields" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_partguid" Location="Postback;Connection"/>
</ParameterBindings>
<DataFields>
</DataFields>
<Xsl>
<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"
version="1.0" exclude-result-prefixes="xsl msxsl ddwrt" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:ddwrt2="urn:frontpage:internal">
<xsl:output method="html" indent="no"/>
<xsl:param name="dvt_adhocmode">sort</xsl:param>
<xsl:decimal-format NaN=""/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:param name="UserID" />
<xsl:param name="dvt_fieldsort" />
<xsl:param name="dvt_filterfield" />
<xsl:param name="dvt_sortdir">ascending</xsl:param>
<xsl:param name="dvt_sortfield" />
<xsl:param name="dvt_sorttype">text</xsl:param>
<xsl:param name="dvt_filterfields" />
<xsl:param name="dvt_partguid" />
<xsl:variable name="dvt_1_automode">0</xsl:variable>
<xsl:template match="/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/2001/XMLSchema"
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:SharePoint="Microsoft.SharePoint.WebControls">
<xsl:call-template name="dvt_1"/>
</xsl:template>
<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
<xsl:variable name="dvt_RowCount" select="count($Rows)" />
<xsl:variable name="dvt_IsEmpty" select="$dvt_RowCount = 0" />
<xsl:choose>
<xsl:when test="$dvt_IsEmpty">
<xsl:call-template name="dvt_1.empty" />
</xsl:when>
<xsl:otherwise><ul id="announcementList" border="0" width="100%" cellpadding="2" cellspacing="0">
<li>
<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:with-param name="fieldname">@Title</xsl:with-param>
<xsl:with-param name="fieldtitle">Title</xsl:with-param>
<xsl:with-param name="displayname">Title</xsl:with-param>
<xsl:with-param name="sortable">1</xsl:with-param>
<xsl:with-param name="fieldtype">x:string</xsl:with-param>
</xsl:call-template>
</li>
<li>
<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:with-param name="fieldname">@Created</xsl:with-param>
<xsl:with-param name="fieldtitle">Created By</xsl:with-param>
<xsl:with-param name="displayname">Created By</xsl:with-param>
<xsl:with-param name="sortable">1</xsl:with-param>
<xsl:with-param name="fieldtype">x:string</xsl:with-param>
</xsl:call-template>
</li>
<li>
<xsl:call-template name="dvt.headerfield" ddwrt:atomic="1"
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">
<xsl:with-param name="fieldname">@Body</xsl:with-param>
<xsl:with-param name="fieldtitle">Body</xsl:with-param>
<xsl:with-param name="displayname">Body</xsl:with-param>
<xsl:with-param name="sortable">1</xsl:with-param>
<xsl:with-param name="fieldtype">x:string</xsl:with-param>
</xsl:call-template>
</li>
</tr>
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
</xsl:call-template>
</ul></xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> </Xsl>
</WebPartPages:DataFormWebPart>
Решение 2
Хорошо, я прибегал к решению jQuery, так как я могу облегчить это, чем все, что SharePoint бросает на меня!
Поскольку все списки имеют класс ms-summarycustombody
Я смог получить следующее, чтобы преобразовать table
к ul
var div = $("<div id='viewport' class='viewport'></div>");
var list = $("<ul id='announcementList'></ul>");
var listitem = null;
var p = null;
$('.ms-summarycustombody').each(function(i) {
$(this).find("tr").each(function(i) {
if (i % 3 == 0) {
listitem = $("<li/>");
list.append(listitem);
}
p = $("<p/>");
$(this).find("td").each(function(i) {
p.append("<span>" + $(this).html() + "</span>");
});
listitem.append(p);
});
div.append(list);
$(this).replaceWith(div);
});
Затем с помощью jcarousellite Я смог прокрутить предметы.
$('.viewport').jCarouselLite({
auto:5000,
speed:1000
});
Другие советы
Я предлагаю вам проверить Spservices. Это «библиотека jQuery, которая абстрагирует веб -сервисы SharePoint и облегчает их использование».
Другой вариант, который нужно рассмотреть - создать что -то, используя модель объекта клиента и JavaScript ... упс, нет, вы используете SP2007.
Если мое чтение вашего вопроса верно, у вас уже есть карусель JavaScript, для которой требуется неупорядоченный список для работы. Поэтому я бы использовал CQWP и XSLT для форматирования списка как. Я не думаю, что XSLT должен быть слишком сложным. Вы можете начать с просмотра некоторого XSLT по умолчанию. Мой совет - использовать преобразование xslt «идентификация», чтобы вы могли видеть входной XML, который вы преобразуете, а не пытались угадать это, посмотрев на XSLT по умолчанию.
Образец преобразования идентификации XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Я не знаю, помогает ли это, но я написал решение, которое делает это с помощью CQWP. Я называю это веб -частью Weber Content Query:
http://www.novolocus.com/software/content-query-ticker-web-part/
Может быть интересным.