我试图通过点击按钮从codebeath访问asp:fileupload。尽管文件名出现在页面上,但控件没有文件。
该按钮是在一个updatepanel(我不希望它影响页面)。
<asp:UpdatePanel ID="UpdatePanel18" runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="saveDraftButton" Text=" حفظ بيانات نموذج الإضافة مؤقتاً " OnClick="saveDraftButton_Click" CssClass="btn btn-outline btn-primary btn-lg btn-block" />
</ContentTemplate>
</asp:UpdatePanel>
文件加载在更新面板之外
<asp:FileUpload ID="FileUpload1" AllowMultiple="true" runat="server" Visible="false" CssClass="form-control" />
你能帮帮我吗?我在这儿待了一会儿。
1条答案
按热度按时间m3eecexj1#
好吧,如果文件上传和控制在更新面板之外,那么当您单击按钮时,只有UP面板被发布到服务器。这是一个更新面板的全部想法(它只张贴回面板内部的内容-并留下页面的其余部分)。这表明您没有掌握网页和回发是如何工作的。你真的需要花时间掌握这个概念,否则你真的不能写任何基于Web的软件。
不管上面?
对于更新面板,您只能在更新面板中包含控件时使用控件并获取其值。只有页面的那一部分(在更新面板内)会被发送到服务器(这是整个想法的一种-你不能触摸或使用更新面板外的控件,如文本框,或者在这种情况下的文件加载控件)。
然而,更糟糕的是,FileUpLoad控件无论如何都不能在更新面板中工作-您需要一个完整的页面回发。
有几种解决方案,但其中一种解决方案是采用围绕 AJAX 构建的文件上载控制,因此您可以上载多个文件,并且无需回发。
有“哦,这么多”可供选择。我一直在使用ajax工具箱中的AjaxFileUpLoad。
它看起来像这样: