深入研究showModaldialog窗口传值问题!

Power_X3q 2002-10-12 09:41:04
深入研究showModaldialog窗口传值问题!
我总结了一下模态窗口传值的可能性,总结了几种情况,希望高手深入谈谈!
(一) 页面形式:
1. a.htm ------> b.htm ;
2. a.aspx ------> b.htm ;
3. a.htm -------> b.aspx ;
4 a.aspx -------> b.aspx ;
-------------------------------------------------
(二) 关于传值
1. 从a.*** 传值到b.*** , b.*** 进行一定的操作(eg.更新数据库)而并不返回a.***一定的数据,
但是返回a.***后要进行一定的刷新,反映出b.***进行的操作;
2. 从a.*** 传值到b.*** , b.*** 进行一定的操作(eg.更新数据库)并且返回一定的数据给a.***
a.***立即刷新,反映刚才的b.***的操作!

我只是一时想到了这几个情况,肯定不全面,对应组合产生很多种情况,
请大家一一深入讨论!最好能够给出例子代码??
...全文
105 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyer 2002-10-14
  • 打赏
  • 举报
回复
其实上面那个例子可以再简单一点的,没有比好用框架,在showModalDialog窗口中的页面,只要在<head>区域加入<base>标记,就可以在本窗口打开连接了。
bluefish922 2002-10-14
  • 打赏
  • 举报
回复
咦,这不是斑竹的帖子吗

TO:楼主,如果你想深入了解showModaldialog的话,到JAVASCRIPT版去问拉
Power_X3q 2002-10-14
  • 打赏
  • 举报
回复
我看到过,不错参予就有分,到时候在给你分!!
howbigsea 2002-10-13
  • 打赏
  • 举报
回复
别人的东西,
嘿嘿
howbigsea 2002-10-13
  • 打赏
  • 举报
回复
在弹出的模态窗口中,选择日期,然后返回到父窗口的TextBox控件

基本思路:
1. 用window.showModalDialog来打开一个模态窗口
2. 由于Calendar控件中有超链接,所以要用到框架。在一个框架中,设置target属性为"_self"
3. 返回数值:用top.returnValue="..."来返回一个值

具体代码:
1. Main.aspx —— 父页面,从这个页面中弹出模态窗口,并把返回的值填入一个TextBox
在<HEAD>...</HEAD>中加入一个弹出窗口的JavaScript函数。
<script language="javascript">
function OpenDialog()
{
var ret = window.showModalDialog("Dialog.htm?Date=" + document.forms[0].all["TextBox1"].value);
if (ret != null)
document.forms[0].all["TextBox1"].value = ret;
}
</script>
在页面中加入一个Button(ID为Button1)和一个TextBox(ID为TextBox1)。
在Page_Load中加入代码:
Button1.Attributes["onClick"] = "javascript:OpenDialog();return false;";
当然,这个Button也可以是一般的HTML的Button。
——————————————————————————

2. Dialog.htm —— 这是一个框架文件
<frameset cols="*">
<frame src="TranParam.htm" target="_self">
</frameset>
——————————————————————————

3. TranParam.htm —— 由于我们的URL中带了一个参数,所以要用这个页面来读取URL的参数,并且传入下一个页面
(可惜我不知道怎么动态设置Dialog.htm中frame的src属性,否则就没有必要用这个文件了,如果那位朋友自动,一定要告诉我哟)
<BODY>
<script language="javascript">
var sURL = window.parent.location.href;
var iIndex = sURL.indexOf("?");
var sParams = sURL.substring(iIndex + 1, sURL.length);
document.location.href = "Calendar.aspx?" + sParams;
</script>
</BODY>
——————————————————————————

4. Calendar.aspx —— 也就是弹出的模态窗口中看见的页面
在页面中加入一个Calendar控件(ID为Calendar1)
在Page_Load中加入:
if (!Page.IsPostBack)
{
DateTime d = DateTime.Today;
try
{
d = DateTime.Parse(Request.QueryString["Date"].ToString());
}
catch
{}
finally
{
Calendar1.SelectedDate = d;
Calendar1.VisibleDate = d;
}
}
在Calendar1的SelectionChanged事件中加入:
StringBuilder strScript = new StringBuilder();
strScript.Append(@"<script language=JavaScript>" + "\n");
strScript.Append(@" top.returnValue='" + Calendar1.SelectedDate.ToString("MM/dd/yyy") + "';" + "\n");
strScript.Append(@" top.close();" + "\n");
strScript.Append(@"</script>");
Page.RegisterStartupScript("setValue", strScript.ToString());
Power_X3q 2002-10-13
  • 打赏
  • 举报
回复
怎么没有帮我解答呢????

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧