I've put an AJAXUploader inside a MultiView which is inside an UpdatePanel, and the Multiview will not switch.
I've searched the boards and with info provided tried sticking a hidden AJAXUploader outside the multiview but that doesn't solve the problem. I've created a simple demo page that replicates the problem, will post code below.
I have checked and the code below works fine when the update panel is removed.
Notes: Running on Server 2008 / IIS7, ASP.NET 3.5, Visual Studio 2008
Code: HTML/ASPX
<asp:ScriptManager ID="scm1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updp1" runat="server">
<ContentTemplate>
<eo:AJAXUploader runat="server" TempFileLocation="\\Salmon.ba.wsu.edu\Web$\TempFiles" ID="auHidden" Visible="false">
<LayoutTemplate>
<asp:PlaceHolder id="InputPlaceHolder" runat="server" />
<asp:Button ID="UploadButton" runat="server" Text="Upload" />
</LayoutTemplate>
</eo:AJAXUploader>
<asp:MultiView ID="mv1" runat="server" ActiveViewIndex="0">
<asp:View ID="vw1" runat="server">
<asp:Button ID="btn1" runat="server" OnClick="DoViewSwitch" Text="Switch to uploader" />
</asp:View>
<asp:View ID="vw2" runat="server">
<eo:AJAXUploader runat="server" ID="fuFiles" TempFileLocation="\\Salmon.ba.wsu.edu\Web$\TempFiles">
<LayoutTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<asp:PlaceHolder id="InputPlaceHolder" runat="server" />
</td>
<td>
<asp:Button ID="UploadButton" runat="server" Text="Upload" />
</td>
</tr>
<tr>
<td colspan="2">
<eo:ProgressBar id="ProgressBar" runat="server" ControlSkinID="None" Height="12px" BorderColor="black" BorderStyle="Solid" BorderWidth="1px" BackColor="#f4c3a3" IndicatorColor="#ec7e3b" />
<asp:PlaceHolder id="ProgressTextPlaceHolder" runat="server" />
</td>
</tr>
<tr>
<td>
<asp:PlaceHolder id="PostedFilesPlaceHolder" runat="server">Posted Files Place Holder </asp:PlaceHolder>
</td>
<td>
<asp:LinkButton id="DeleteButton" runat="server" Text="delete"></asp:LinkButton>
</td>
</tr>
</table>
</LayoutTemplate>
</eo:AJAXUploader>
</asp:View>
</asp:MultiView>
</ContentTemplate>
</asp:UpdatePanel>
Code: C#
protected void DoViewSwitch(object sender, EventArgs e)
{
mv1.SetActiveView(vw2);
}
David L. Sargent
Developer
Washington State University