我在MultiView的第二个视图中有一个AjaxFileUpload控件。默认情况下,会出现MultiView的第一个视图,单击一个按钮,我会到达具有AjaxFileUpload Control的第二个视图。此控件不上传任何文件,上传率为93%或99%或100%。
但是当我将第二个视图设置为默认视图时,AjaxFileUpload Control没有任何问题。
WebForm中的代码(aspx页面):
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</asp:View>
<asp:View ID="View2" runat="server">
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" onunload="AjaxFileUpload1_Unload"
onuploadcomplete="UploadComplete" ThrobberID="myThrobber" onload="AjaxFileUpload1_Load"
oninit="AjaxFileUpload1_Init" />
<asp:AnimationExtender ID="AjaxFileUpload1_AnimationExtender" runat="server" Enabled="True"
TargetControlID="AjaxFileUpload1">
</asp:AnimationExtender>
<asp:Button ID="Button1" runat="server" Text="Button" />
</asp:View>
</asp:MultiView>
cs页面中的代码(aspx.cs):
protected void Page_Load(object sender, EventArgs e)
{
}
protected void UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string path = Path.GetTempPath();
AjaxFileUpload1.SaveAs(Server.MapPath("files/")+ e.FileName);
}
protected void AjaxFileUpload1_Unload(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
MultiView1.ActiveViewIndex = 1;
}
我做错了什么,我该如何解决这个问题?
答案 0 :(得分:2)
感谢您的提问。
这是一个已知问题,如果将AjaxFileUpload控件置于最初不可见的Panel控件上,则该控件不起作用。
可以在客户端选择文件,但如果用户单击“上传”按钮,则上传将不会完成,并且仍处于失败状态。
如果我们想要解决它,我们应该在同一页面上的一个不可见的HTML div标签中放置另一个AjaxFileUpload控件
将相同的客户端和服务器端上传完整事件处理程序附加到AjaxFileUpload控件。
请检查以下链接,有人提供了解决方案。
http://ajaxcontroltoolkit.codeplex.com/workitem/27307
希望这会有所帮助。感谢。
最诚挚的问候!
答案 1 :(得分:0)
您可以替换MultiView
并使用multiple panel
查看控件。并创建一个模拟
multiview.setactiveview();
Panel1.visible=true;
Panel2.Visible=false;