Ошибка управления ссылкой на документ PDF - PdfDocumentLink.ascx

Я только что обновился с 5.1 до 7.0, и теперь я получаю эту ошибку на одной из страниц с элементом управления PdfDocumentLink (в режиме редактирования):

Требуемый элемент управления не найден в шаблоне для "~ / Sitefinity / Extensions / WidgetTemplates / Libraries / Documents / PdfDocumentLink.ascx". Элемент управления должен быть назначен из типа «System.Web.UI.HtmlControls.HtmlGenericControl» и должен иметь идентификатор «itemsContainer».

Я получаю 500 в режиме предварительного просмотра.

Это код для ascx в \ Sitefinity \ Extensions \ WidgetTemplates \ Libraries \ Documents

<%@ Control Language="C#" %>
<%@ Register TagPrefix="sitefinity" Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.PublicControls.BrowseAndEdit" Assembly="Telerik.Sitefinity" %>
<sitefinity:ResourceLinks id="resourcesLinks2" runat="server" UseEmbeddedThemes="false" Theme="Default">

  <sitefinity:ResourceFile Name="~/Sitefinity/Extensions/WidgetTemplates/Libraries/Documents/PdfDocumentLink.css" Static="true"  /> 
</sitefinity:ResourceLinks>
<sitefinity:SitefinityHyperLink ID="documentLink" runat="server" target="_blank" CssClass="PdfDocumentLink" />
<sf:BrowseAndEditToolbar ID="browseAndEditToolbar" runat="server" Mode="Edit"></sf:BrowseAndEditToolbar>

Вот файл cs ... в папке C: \ inetpub \ xxx \ App_Code \ Widgets

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


namespace xxx.Sitefinity.Widgets.Libraries.Documents {
    /// <summary>
    /// Summary description for PdfDocumentLink
    /// </summary>
    public class PdfDocumentLink : Telerik.Sitefinity.Modules.Libraries.Web.UI.Documents.DocumentLink {
        public PdfDocumentLink() : base () {
            //
            // TODO: Add constructor logic here
            //
        }

        public override string LayoutTemplatePath {
            get {
                return "~/Sitefinity/Extensions/WidgetTemplates/Libraries/Documents/PdfDocumentLink.ascx";
            }
            set {
                base.LayoutTemplatePath = value;
            }
        }

        public string LinkTitle {
            get;
            set;
        }

        protected override void OnPreRender(EventArgs e) {
            base.OnPreRender(e);
            if (this.LinkTitle != null)
            this.DocumentLinkControl.Text = this.LinkTitle;
        }
    }
}

И файл ToolboxesConfig.config:

  ...
    <toolboxesConfig xmlns:config="urn:telerik:sitefinity:configuration" xmlns:type="urn:telerik:sitefinity:configuration:type" config:version="7.0.5100.0">
        <toolboxes>
            <toolbox name="PageControls">
                <sections>
                    <add name="ContentToolboxSection">
                        <tools>...
                            <add enabled="True" type="OneCommand.Sitefinity.Widgets.Libraries.Documents.PdfDocumentLink" title="PDF Document Link" description="Link to a PDF Document" cssClass="sfDownloadLinkIcn" moduleName="Libraries" Name="PDFDocumentLink" visibilityMode="None" name="PDFDocumentLink" />

Если я удалю виджет, добавлю его обратно и выберу PDF-документ, я получу ту же ошибку.

Виджет «Ссылка на документ» работает нормально, но у него нет значка PDF слева, который мы хотим отобразить.

Любые идеи?


person live-love    schedule 30.04.2014    source источник
comment
Я могу воссоздать это, и похоже, что вы добавляете атрибут LinkTitle к элементу управления DocumentLink по умолчанию. Можете ли вы просто использовать вариант по умолчанию и изменить заголовок документа: sitefinity.com/documentation/documentationarticles/user-guide/   -  person Ben    schedule 30.04.2014


Ответы (1)


Попробуйте добавить это в свой файл .ascx:

<div runat="server" id="itemsContainer"></div>
person Ben    schedule 30.04.2014
comment
Превосходно! Есть идеи, почему этот DIV нужен сейчас, а раньше в нем не было необходимости? - person live-love; 01.05.2014
comment
Если вы просматриваете источник страницы, похоже, что этот элемент управления добавляет класс значка в div, в зависимости от того, какой тип значка вы выбрали в настройках виджета, который используется для отображения соответствующего значка на якоре. Возможно, вы не видите значок, потому что в вашем файле ascx вы заменяете стили по умолчанию некоторыми пользовательскими. Если вы загрузите Sitefinity SDK, там будет стандартный шаблон DocumentLink, и вы можете сравнить. - person Ben; 01.05.2014