FileUpload与UpdatePanel

本文介绍如何在ASP.NET中解决UpdatePanel与FileUpload控件的兼容性问题,通过IFrame实现页面局部刷新和文件上传功能。文章详细阐述了在主页面与IFrame页面间通过JavaScript进行交互的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UpdatePanel是Asp.net实现页面部分刷新所使用的控件。还是挺不错的控件,避免了不少因为刷新所带来的不良用户体验(点击Asp.net按钮触发页面刷新,清楚text box中的内容)。但UpdatePanel是不能与FileUpload同时使用的。这也是微软明确指出的问题。同时使用FileUpload与UpdatePanel需要“耍点小聪明”。一个切实可行的方法是结合IFrame一起使用。使用UpdatePanel包含一个IFrame,然后写一个上传文件的页面,将这个页面放到IFrame里面。具体实现如下:

1. 在主页面Test.aspx中使用UpdatePanel包住Iframe
...
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <ContentTemplate>
    <iframe id="uploadFile" name="uploadFile" src="FileUpload.aspx" style="border-style: none"></iframe>
  </ContentTemplate>
</asp:UpdatePanel>
...
IFrame的src属性指向有FileUpload控件的页面FileUpload.aspx

 

2. 在FileUpload.aspx页面中放置FileUpload控件
...
<asp:FileUpload ID="fileUploadImage" runat="server" />&nbsp;
<asp:Button ID="btnUploadImage" runat="server" Text="上传" OnClick="btnUploadImage_Click" />
...
这样就可以实现FileUpload与UpdatePanel同时使用。但这还远远不足!主页面需要和iframe中的页面进行交互才满足实际需求。交互可以通过JavaScript来实现。具体如下:

1. 在FileUpload.aspx(包含在iframe页面中的页面)调用主页面的JavaScript
在FileUpload.aspx中定义以下JavaScript:
function callBack()
{
  var fileName = $("#hdfTmpPath").val();
  window.parent.callBack(fileName); //调用主页面JavaScript
}

在主页面Test.aspx中定义被上面调用的JavaScript:
function callBack(fileName)
{

  //运行代码或调用其他FileUpload.aspx中的JavaScript,传入的参数可以参与JavaScript的运行或传达到其他JavaScript中运行。

}

 

2. 在主页面Test.aspx调用FileUpload.aspx的JavaScript
在FileUpload.aspx中定义以下JavaScript供主页面调用:
function UploadWindowJavaScript(参数)
{

  //运行代码或调用其他FileUpload.aspx中的JavaScript,传入的参数可以参与JavaScript的运行或传达到其他JavaScript中运行。
}

在主页面使用以下代码调用FileUpload.aspx中的JavaScript
document.getElementById("uploadFile").contentWindow.UploadWindowJavaScript(参数); //主页面调用FileUpload中的JavaScript

 

以上便是同时使用UpdatePanel和FileUpload控件的事例方法。

转载于:https://www.cnblogs.com/MatrixBlogs/p/7213813.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值