ModalDialog页面同时提供上传下载功能

ModalDialog 页面内要求同时提供上传文件和下载文件功能。

head 内部添加<base id ="base"  target ="_self"  />,Form 标签内添加一个隐藏的iframe<iframe id="targetFrame" name="download"   runat ="server"  height="0px" width="0px"></iframe>

写一个JavaScript Function 如下:

Function ChangeBaseTarget(obj)

{

  If(obj.value==”Upload”)

document.getElementById('base').target = "_self";

else

document.getElementById ('base').target = " targetFrame ";

}

UploadDownload 按扭的OnClientClick 设为此脚本。即可实现上传下载功能。如果改变base 标签的target ,在下载时不会有任何响应,虽然执行了下载代码。这是一种方法在ModalDialog 页面内实现上传下载文件功能。

另一种方法是通过过渡页面。假设有三个页面ParentPage.aspx,FramePage.aspx,DialogPage.aspx

ParentPage.aspx 页面就放一个Html 按扭 ,该按扭的JavaScript Function 如下:

function Button1_onclick() {

            var par = encodeURIComponent(" a º? D ? ? ºy&&^!?=$^&*()" );

            var doc = "dialogHeight=400px;dialogWidth=650px;status=no;help=no;scroll=no;location=no" ;

            showModalDialog("FramePage.aspx?par1=1&par2=2&par3=" +par,null ,doc);

}

FramePage.aspx 页面:

Form 内放一个隐藏的Iframe

< iframe id ="ifame" name ="down"   frameborder ="0"   runat ="server" width ="100% " height ="100%" >   </ iframe >

写一个JavaScript Function 接受ParentPage.aspx 传过来的参数,并接参数传递给DialogPage.aspx 页面,同时将 iframesrc 设为DialogPage.aspx

function OpenDialogPage() {

             var frame = document.getElementById('ifame' );

             var pars = location.search;

             if (pars.indexOf("?" ) != -1) {

                 var pars = pars.substr(1);

             }

             frame.src = "DialogPage.aspx?” + pars;

             //alert(pars);

         }

Body onload 事件执行此方法:

< body   onload =" OpenDialogPage ();" >

</ body >

DialogPage.aspx 页面按照普通页面窗体接受参数、页面部局及执行相关操作即可。在接受参数时,请用 decodeURIComponent 解码,以获取正确参数。

关于LinkButtonModalDialog 页面内的使用,linkbutton 与普通的button 有所不同,在ModalDialog 页面中,即使即basetarget 设为iframe_self 均无效,在使用linkbutton 前必须使ModalDialog 页面先回发一次服务器,再次操作才正常执行程序,所以会出现在单击一次普通按扭后再点击linkbutton ,此时,linkbutton 工作正常。否则会提示,脚本“运行时错误,缺少对象。”, 即便设置了posturl 也如此。但是如果是用过渡页面来呈现modaldialog ,那么一切问题将不复存在!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值