当前位置: 代码迷 >> ASP.NET >> OpenFileDialog.ShowDialog()弹出在IE后面(非模态),该怎么解决
  详细解决方案

OpenFileDialog.ShowDialog()弹出在IE后面(非模态),该怎么解决

热度:4961   发布时间:2013-02-25 00:00:00.0
OpenFileDialog.ShowDialog()弹出在IE后面(非模态)
今天做一个浏览文件的按钮时调用了OpenFileDialog.ShowDialog()函数,等了半天(页面在刷新),才发现弹出的对话框在浏览器后面... - -! 这是怎么回事?
查看ShowDialog()函数需要一个参数IWin32Window owner,但是页面里不能提供这样的参数啊.求大神指点.
C# code
        OpenFileDialog dialog = new OpenFileDialog();        dialog.InitialDirectory = "C:\\";        dialog.Filter = "文本文件|*.*|C#文件|*.cs|所有文件|*.*";        dialog.RestoreDirectory = true;        if (dialog.ShowDialog() == DialogResult.OK)        {            ...        }


------解决方案--------------------------------------------------------
js也可以的

1. 要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
parent.htm
<script>
var obj = new Object();
obj.name="51js";
window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>
modal.htm
<script>
var obj = window.dialogArguments
alert("您传递的参数为:" + obj.name)
</script>
-------------------------------
2. 可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
------------------------------
parent.htm
<script>
str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
alert(str);
</script>
modal.htm
<script>
window.returnValue="http://homepage.yesky.com";
</script>