我最近将项目更新为DNN 6.0.1。我从6.0.1安装开始,并从那里添加了我的桌面模块。从5.6.3移动到6.0.1时出现了一个问题,在我的一些用户控件中有一些功能。在我深入研究之前,我会承认自己有点不舒服。
快速概述我有一个ascx,其中包含另一个控件中的所有功能,其中包含asp向导中的其他几个控件。
(这么多嵌套控件的原因是隐藏了许可目的的功能,以及另一个模块[也许可]依赖于第一个子控件中的功能)
它就像这样的父:ViewReportRisk.ascx>>子:ReportRiskWizard.ascx>>第二个孩子:Attachments.ascx (许可 - 隐藏功能)(主要功能)(支持功能的控件)
向导(在子控件中)位于Telerik RadMultiPage内。我遇到麻烦的控件(第二个子控件)包含一个包含在asp更新面板中的RadUploader。
当我单击向导中的“下一步”以使用RadUploader查看控件时,我收到此错误:
Sys.InvalidOperationException: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'dnn_ctr445_ViewReportIssue_wzAddRisk_AttachmentsAddTemp_UpdatePanel1'. If it is being updated dynamically then it must be inside another UpdatePanel.' when calling method: [nsIDOMEventListener::handleEvent]
Id很好。我没有动态创建控件,当我删除更新面板时,控件出现,但上传功能丢失。
控件的简要概述(缩写):
ViewReportIssue.ascx
<%@ Control Language="C#" Inherits="NWDS.Modules.ReportIssue.ViewReportIssue" AutoEventWireup="true"
CodeBehind="ViewReportIssue.ascx.cs" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register src="ReportIssueWizard.ascx" tagname="ReportIssueWizard" tagprefix="uc2" %>
<%@ Register src="../Utils/LicensingInfo.ascx" tagname="LicensingInfo" tagprefix="uc1" %>
<uc1:LicensingInfo ID="LicensingInfo1" runat="server" />
<asp:Panel runat="server" ID="pnlContainer">
<uc2:ReportIssueWizard ID="ReportIssueWizard1" runat="server" />
</asp:Panel>
ReportIssueWizard.ascx
<%@ Register Src="Attachments.ascx" TagName="Attachments" TagPrefix="nwds" %>
<%@ Register Src="NonPunitiveReportingPolicy.ascx" TagName="NonPunitiveReportingPolicy"
TagPrefix="nwds" %>
<%@ Register Src="DescriptionCorrectiveAction.ascx" TagName="DescriptionCorrectiveAction"
TagPrefix="nwds" %>
<%@ Register Src="ThankYou.ascx" TagName="ThankYou" TagPrefix="nwds" %>
<%@ Register Src="SelectDivisionTypeCustomType.ascx" TagName="SelectDivisionTypeCustomType"
TagPrefix="nwds" %>
<%@ Register Src="IssuePeopleInvolved.ascx" TagName="IssuePeopleInvolved" TagPrefix="nwds" %>
<%@ Register Src="WhereWhen.ascx" TagName="WhereWhen" TagPrefix="nwds" %>
<%@ Register Src="CustomATC.ascx" TagName="ATC" TagPrefix="customReport" %>
<%@ Register Src="CustomCabinSafety.ascx" TagName="Cabin" TagPrefix="customReport" %>
<%@ Register Src="CustomFlightSafety.ascx" TagName="Flight" TagPrefix="customReport" %>
<%@ Register Src="CustomMaintenance.ascx" TagName="Maintenance" TagPrefix="customReport" %>
<%@ Register Src="ReportRiskViewMode.ascx" TagName="ViewMode" TagPrefix="nwds" %>
<%@ Register Src="CustomParamedic.ascx" TagName="CustomParamedic" TagPrefix="nwds" %>
<%@ Register Src="QuickReport.ascx" TagName="QuickReport" TagPrefix="nwds" %>
<%@ Register Src="../Utils/GlobalMessage.ascx" TagName="GlobalMessage" TagPrefix="nwds" %>
<telerik:RadTabStrip ID="tsMenu" runat="server" MultiPageID="mpvMain" Skin="Telerik"
AutoPostBack="True" SelectedIndex="0" OnTabClick="tsMenu_TabClick">
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="mpvMain" runat="server" RenderSelectedPageOnly="True" SelectedIndex="0"
Width="100%">
<telerik:RadPageView runat="server" ID="pvReport">
<div id="forcer" runat="server">
<asp:Label ID="lblWarning" CssClass="Warning" runat="server"></asp:Label>
<asp:MultiView ID="mvReportRisk" runat="server">
<asp:View ID="vBasicDetails" runat="server">
<asp:Wizard ID="wzAddRisk" runat="server" Width="1000px" OnActiveStepChanged="wzAddRisk_ActiveStepChanged"
OnNextButtonClick="ChangeHeaderNext" OnPreviousButtonClick="ChangeHeaderPrevious"
OnFinishButtonClick="wzAddRisk_FinishButtonClick" ActiveStepIndex="0">
<WizardSteps>
<asp:WizardStep ..........
<asp:WizardStep ID="Attachments" runat="server" Title="7. Add Attachments">
<nwds:Attachments ID="AttachmentsAddTemp" runat="server" CanAddNewAttachments="true"
UserCanEdit="true" attachmentType="Temp" />
</asp:WizardStep>
</WizardSteps>
<FinishNavigationTemplate>
<table width="100%" class="formBg">
<tr>
<td align="left" valign="top">
<asp:Button ID="btnPrevious" runat="server" CssClass="Button" Text="Previous" OnClick="ChangeHeaderPrevious" />
</td>
<td align="right" valign="top">
<asp:Button ID="btnSubmitIssue" runat="server" CssClass="Button" Text="Submit" OnClick="btnSubmitIssue_Click" />
</td>
</tr>
</table>
</FinishNavigationTemplate>
<StepNavigationTemplate>
<table width="100%" class="formBg">
<tr>
<td>
<div style="padding-top: 0px; text-align: left;">
<asp:Button ID="btnPrevious" runat="server" CssClass="Button" Text="Previous" OnClick="ChangeHeaderPrevious" />
</div>
</td>
<td>
<div style="padding-top: 0px; text-align: right;">
<asp:Button ID="Button2" runat="server" CssClass="Button" Text="Next" OnClick="ChangeHeaderNext" />
</div>
</td>
</tr>
</table>
</StepNavigationTemplate>
<HeaderStyle CssClass="formHeadingSub" />
<SideBarTemplate>
<asp:DataList ID="SideBarList" runat="server">
<SelectedItemStyle Font-Bold="True" />
<ItemTemplate>
<asp:LinkButton ForeColor="Black" ID="SideBarButton" runat="server" Font-Size="1em"
OnClick="ChangeHeader" BackColor="transparent" Font-Underline="True" Font-Bold="true"></asp:LinkButton>
</ItemTemplate>
<SelectedItemTemplate>
<asp:LinkButton ID="SideBarButton" OnClick="ChangeHeader" runat="server" BackColor="#e4e4e4"
ForeColor="Black" Font-Bold="true" Font-Underline="True" Font-Size="1em"></asp:LinkButton>
</SelectedItemTemplate>
</asp:DataList>
</SideBarTemplate>
</asp:Wizard>
<br />
<div class="">
<strong>Note: </strong>For best results, do not use the browser back button. Use
either the "Previous" button or the side menu to navigate.
</div>
</asp:View>
</asp:MultiView>
</div>
</telerik:RadPageView>
Attachments.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Attachments.ascx.cs" Inherits="NWDS.Modules.ReportIssue.Attachments" %>
<%@ Register Src="../Utils/GlobalMessage.ascx" TagName="GlobalMessage" TagPrefix="nwds" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<style type="text/css">
ul li
{
list-style: none;
}
</style>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<telerik:radgrid id="gvAttachments" width="50%" skin="Default" runat="server" autogeneratecolumns="False"
allowautomaticdeletes="True" allowautomaticupdates="True" gridlines="None"
ondeletecommand="gv_DeleteCommand" datasourceid="odsAttachments" visible="False"
onitemdatabound="gv_ItemDataBound">
</telerik:radgrid>
<telerik:radgrid id="gvTemp" width="50%" skin="Default" runat="server" autogeneratecolumns="False"
allowautomaticupdates="True" gridlines="None" datasourceid="odsTempFiles" visible="false" ondeletecommand="gv_DeleteCommand"
onitemdatabound="gv_ItemDataBound">
</telerik:radgrid>
<telerik:radgrid id="gvNonReportedIssueRelatedAttachments" width="50%" skin="Default" runat="server"
autogeneratecolumns="False" allowautomaticupdates="True"
gridlines="None" datasourceid="odsNonReportedIssueRelatedAttachments"
visible="false" ondeletecommand="gv_DeleteCommand" onitemdatabound="gv_ItemDataBound">
</telerik:radgrid>
<br />
<telerik:radupload id="ruIssueAttachments" runat="server" onfileexists="ruIssueAttachments_FileExists"
allowedfileextensions="tiff,jpg,jpeg,png,gif,bmp,doc,docx,xls,xlsx,pdf,txt" controlobjectsvisibility="None"
initialfileinputscount="10">
</telerik:radupload>
<div style="padding-bottom: 15px;">
<asp:Button ID="btnUploadAttachments" runat="server" Text="Upload" CssClass="Button"
OnClick="UploadFiles" />
<asp:Label id="lblUploadWarning" runat="server" style="font-weight: bold; color: Red;">To add the attachment, click the Upload Button</asp:Label></div></div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnUploadAttachments" />
</Triggers>
</asp:UpdatePanel>
这在DNN 5.6.3版本中没有出现,仅在6.0.1(模块中的相同代码)中发生 只为S&amp; GI在另一个第二个子控件上放置了一个更新面板并且它抛出了相同的错误,所以我确定它与控件的嵌套有关(Parent-Child-GrandChild),但我不确定如何解决这个问题。
非常感谢任何帮助,提前谢谢。
答案 0 :(得分:5)
事实证明,我的问题的答案是将UpdatePanel的UpdateMode属性设置为Conditional