fileupload控件在更新面板中不起作用

时间:2011-01-07 12:19:14

标签: asp.net file-upload

HI,

fileupload控件是在网格内部,当没有使用Ajax时它的工作正常,因此我使用Update面板,在将文件上传到thr数据库时出错,plz帮我解决这个问题。

请指教 Dhanraj.S

4 个答案:

答案 0 :(得分:4)

您可以在“提交”按钮上设置“回传”触发器。之后,您可以在服务器端获取图像。

代表

<Triggers>
<ajax:PostBackTrigger ControlID="btnSubmit" />
</Triggers>

答案 1 :(得分:3)

这是因为UpdatePanel未将文件保留在asp:FileUpload

解决方法是在更新PostBackTrigger

的按钮上设置UpdatePanel

假设有一个更新UpdatePanel的Button(比如说UploadFileButton)。像这样改变你的面板

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <asp:FileUpload ID="TestFileUpload" runat="server" />
        <br />
        <asp:Button ID="UploadFileButton" runat="server" Text="Upload File"/>
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="UploadFileButton" />
    </Triggers>
</asp:UpdatePanel>

答案 2 :(得分:2)

您是否尝试过使用AjaxControlToolkit 3.5中的new AsyncFileUpload ControlHere是一步一步的指南。

答案 3 :(得分:0)

可能不是你想要的,但为什么不使用jQuery上传文件?您可以使用jQuery Form Plugin来执行此操作。 这是脚本:

<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="Scripts/jquery.form.js"></script>
<script type="text/javascript">
    $("#myForm").ajaxForm({
        success: function (response) {
            $('#updateDiv').append(response);
        }
    });
</script>

这是HTML:

<form id="myForm" action="http://localhost/Default.aspx" method="post"
enctype="multipart/form-data">
<div id="updateDiv" runat="server">
</div>
<div>
    <input type="file" id="filePhoto" name="filePhoto" value="" />
    <input type="submit" value="Upload Photo" />
</div>
</form>

当然,您必须在代码隐藏中处理表单提交并发回适当的响应。