我可以在向导的“完成”步骤中使用一个由UpdatePanel包围的FileUpload控件吗

本文关键字:一个 包围 控件 FileUpload UpdatePanel 完成 向导 我可以 | 更新日期: 2023-09-27 18:25:54

我有一个被UpdatePanel包围的Wizard控件,我希望在整个步骤中有一个FileUpload控件。我知道只有在UpdatePanel中添加了触发器的情况下,FileUpload控件才会在UpdatePanel内工作,但是,我的UpdatePanel在下面的示例中找不到Button1控件。我相信这只是完整步骤的一个"特性"。在完成步骤中,是否有其他方法(最好是简单的方法)可以做到这一点?

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="Button1" />
    </Triggers>
    <ContentTemplate>
        <asp:Wizard ID="Wizard1" runat="server">
            <WizardSteps>
                <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
                </asp:WizardStep>
                <asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2" StepType="Complete">
                    <asp:FileUpload ID="FileUpload1" runat="server" />
                    <asp:Button ID="Button1" runat="server" Text="Button" />
                </asp:WizardStep>
            </WizardSteps>
        </asp:Wizard>
    </ContentTemplate>
</asp:UpdatePanel>

我可以在向导的“完成”步骤中使用一个由UpdatePanel包围的FileUpload控件吗

好吧,在浏览了几个小时的互联网后,我找到了解决方案。需要的是向导完成步骤中的另一个嵌套UpdatePanel,其中按钮1上有PostBackTrigger,外部UpdatePanel上有匹配的PostBackTriger。

如下所示:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="Button1" />
    </Triggers>
    <ContentTemplate>
        <asp:Wizard ID="Wizard1" runat="server">
            <WizardSteps>
                <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1">
                </asp:WizardStep>
                <asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2" StepType="Complete">
                    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                        <Triggers>
                            <asp:PostBackTrigger ControlID="Button1" />
                        </Triggers>
                        <ContentTemplate>
                            <asp:FileUpload ID="FileUpload1" runat="server" />
                            <asp:Button ID="Button1" runat="server" Text="Button" />
                        <ContentTemplate/>
                    <UpdatePanel/>
                </asp:WizardStep>
            </WizardSteps>
        </asp:Wizard>
    </ContentTemplate>
</asp:UpdatePanel>

此外,您可能会发现,第一次上传文件时,您的控件没有该文件。我不知道原因,但您可能需要在表单标记上使用enctype="multipart/form-data"。

我希望将来有人会觉得这很有帮助。

相关文章: