我可以在向导的“完成”步骤中使用一个由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,其中按钮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"。
我希望将来有人会觉得这很有帮助。