SharePoint EditModePanel отображение содержимого в любое время

#sharepoint

#sharepoint

Вопрос:

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

 <PublishingWebControls:EditModePanel runat=server PageDisplayMode="Display">
    <script type="text/javascript" src="../_scripts/metroUI.js"></script>
</PublishingWebControls:EditModePanel>
  

И вот мои пространства имен:

 <%@ Import Namespace="Microsoft.SharePoint" %> 
<%@ Register Tagprefix="SharePointWebControls" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePointPortalControls" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="cmsc" namespace="Microsoft.SharePoint.Publishing.WebControls" assembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="WpNs1" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebControls" namespace="Microsoft.SharePoint.Publishing.WebControls" assembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Taxonomy" Namespace="Microsoft.SharePoint.Taxonomy" Assembly="Microsoft.SharePoint.Taxonomy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
  

Чего мне не хватает?

РЕДАКТИРОВАТЬ: кроме того, если я переключу страницу на PageDisplayMode=»Редактировать», скрипт не загружается ни в одном месте.

Ответ №1:

Я поместил то, что у меня было, и что работает для меня. Единственное, что я могу заметить в верхней части моей головы, это то, что у вас есть runat=server, а не runat=»сервер»

Боюсь, я больше ничего не знаю.

 <SharePointWebControls:UIVersionedContent UIVersion="4" runat="server">
    <ContentTemplate>
        <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/page-layouts-21.css %>" runat="server"/>
        <PublishingWebControls:EditModePanel runat="server">
            <!-- Styles for edit mode only-->
            <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/edit-mode-21.css %>"
                After="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/page-layouts-21.css %>" runat="server"/>
        </PublishingWebControls:EditModePanel>
        <!-- For Javascript that can not be used in publishing mode due to issue with Array.prototype breaking sharepoing. -->
        <PublishingWebControls:EditModePanel runat="server" id="Someid" PageDisplayMode="Display" >
            <!-- Interactive -->
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>

        </PublishingWebControls:EditModePanel>

    </ContentTemplate>
</SharePointWebControls:UIVersionedContent>
  

Комментарии:

1. Подумав об этом, проверьте UIVersion, который вы используете. UIVersion =»4″, я также видел его как «3».

Ответ №2:

Если вы включаете это на страницу, вам может потребоваться включить SuppressTags=»True», чтобы опустить заключающие теги.

 <PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Display" SuppressTag="True">
   [Content here]
</PublishingWebControls:EditModePanel>
  

Ссылка
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing .webcontrols.editmodepanel.suppresstag.aspx