我可以在UpdatePanel包围的向导的完成步骤中拥有FileUpload控件吗?

时间:2013-08-01 00:04:50

标签: c# asp.net

我有一个用UpdatePanel包围的向导控件,我想在完整的步骤中使用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>

1 个答案:

答案 0 :(得分:3)

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

如下所示:

<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”。

我希望有人在将来发现这有用。