我们的问题/问题围绕着一个上传控件,当使用回发控件时(在这种情况下,下拉列表发布),该控件将丢失所选文件(变为空白)。有什么洞察我们做错了什么或我们如何解决这个问题?以下是我们的代码和问题摘要。
非常感谢任何帮助。
谢谢!
<asp:updatepanel id="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="row">
<asp:DropDownList runat="server" AutoPostBack="true" ID="CategorySelection" OnSelectedIndexChanged="CategorySelection_IndexChanged" CssClass="drop-down-list" />
</div>
<div id="SubCategory" class="row" runat="server" visible="false">
<asp:DropDownList runat="server" ID="SubCategorySelection" CssClass="drop-down-list" />
</div>
<div class="row">
<asp:FileUpload runat="server" ID="FileUpload" CssClass="file-upload" />
</div>
<div class="row">
<asp:Button ID="submit" runat="server" Text="Submit" CssClass="button" OnClick="submit_ButtonClick" />
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="submit" />
</Triggers>
</asp:updatepanel>
在这种形式中,我们有2个DropDownList,1个FileUpload和1个提交按钮。每次用户选择一个类别时,子类别都会被加载(AutoPostBack =“true”)。
主要用户流正常工作:用户选择一个类别,子类别并选择要上载(提交)的文件。但是,如果用户先选择一个文件,然后选择一个类别,屏幕将进行部分刷新,所选文件将消失(字段变为空白)。结果,用户需要再次选择文件。这会导致问题,因为不再选择文件这一事实很容易被忽视。
似乎直截了当 - 但却给我们带来了很多悲伤。那里有哪些专家可以提供帮助?非常感谢!
答案 0 :(得分:0)
这是输入类型=文件的行为,即它无法预先填充。将FileUpload移到UpdatePanel之外。在标记中,您可以将FileUpload和提交按钮移到UpdatePanel之外。