asp.net子页面父页面问题请教+散分

qqhahazxxqq 2010-03-30 11:10:33
加精
好久又没来CSDN了,今天来散散分,顺便请大家讨论讨论子页面,父页面之间的问题。HOHO
以前都不大喜欢做子页面,父页面这样的操作功能,但前段时间做了个项目。客户要求和他以前用的那个软件操作要类似,额~!上面全是用子页面,父页面这样的操作模式。操作起来感觉像是在操作CS模式的程序。。。没办法,硬着头皮搞搞咯。结果发现很多问题。虽然自己都解决了,但是肯定不是最好的解决方法。希望各位大虾有好的建议多多指点啊。小弟在此谢过。

A.aspx父页面(需要在此页面上点击“设置”弹出子页面对工程类型进行设置,子页面提供工程类型的列表,可在工程类型上增删改查,操作完子页面后。关闭子页面对父页面有如下要求。1.select 中必须包含更改过后的所有数据(由于A页面上还有其他填写项,所有我不能点击设置就刷新表单,刷新的话之前客户在这张表单填写的其他值就没了),2.有可能客户在子页面删除了某一类型,此类型正好是此页面显示数据的类型。(额~!这个还得给他加上,汗一个。老程序上是这样的。没办法)3。选中项肯定不能变了)

%@ Page Language="C#" AutoEventWireup="true" CodeFile="a.aspx.cs" Inherits="WindowAccessCase_a" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>111</title>
<script language="javascript" type="text/javascript">

// 2.关闭子窗口后更新select
function jsAddItemToSelect() {
var ddl=window.document.getElementById('txtXMFL');
var index=ddl.selectedIndex;
var str=window.showModalDialog('../WindowAccessCase/b.aspx',ddl.options[index].value,'dialogWidth=500px;dialogHeight=500px');
var objSelect=window.document.getElementById('txtGCLX');
if(str!="")
{
objSelect.options.length=0;//清空
var arr=str.split("|");
for (i=0;i<arr.length ;i++ )
{
var varItem = new Option(arr[i], arr[i]);
objSelect.options.add(varItem);
}
}
var gcfl=window.document.getElementById('gcfl').value;

//检查返回项中有无原始项
var j=0;
for(var j=0;j<objSelect.options.length;j++)
{
if(objSelect.options[j].value == gcfl)
{
break;
}
}
if(j==objSelect.options.length)
{
var varItem = new Option(gcfl, gcfl);
objSelect.options.add(varItem);
}
//回到选中项
for(var i=0;i<objSelect.options.length;i++)
{
if(objSelect.options[i].value == gcfl)
{
objSelect.options[i].selected = true;
break;
}
}
}
//Request.Form["txtGCLX"];//js填充的select在后台需要这样取值,如果用this.txtGCLX.Value;取值的话是空。(为什么?还有其他方法么?)
</script>

</head>
<body>
<form id="form2" runat="server">
<select id="txtGCLX" name="s1" runat="server">
</select>
<input id="btnsz" type="button" runat="server" onclick="jsAddItemToSelect();" value="设置" />
</form>
</body>
</html>

b.aspx子页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="b.aspx.cs" Inherits="WindowAccessCase_b" %>
<%@ OutPutCache Location="None"%><%--解决页面第二次showModalDialog方式打开不加载数据的问题(缓存问题) 这个还有其他方法解决么?(可有其他方法解决?)--%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<base target="_self"/> <%-- 表示网页中所有的超链接的目标地址都在原窗口上打开(解决close()时弹出新窗口) --%>除了这样还能有其他方法解决没有?
<title>222</title>

<script type="text/javascript" language="javascript">
//获取父窗口传过来的值
function huoqu()//这里有个问题,即使我这样把从父页面获得的值传给一个隐藏变量,但我后台还是得不到(后面我直接用session算了。 O(∩_∩)O哈哈~)
{
var str = window.dialogArguments;
window.document.getElementById('Hidden1').value=str;
}
//返回工程分类表数据
function fanhui(str)
{
window.returnValue=str;//返回值给父窗口
}
//点红X关闭网页执行此函数 (点红叉关闭以前搞过,上次要求的是我还必须去执行一段后台代码,如果这样写就执行不了后台代码,奇怪的是 我加了一句alert("dfdf");)竟然就可以了。。。。。。没搞懂。高手能否告诉我原因或者其他解决方法 function guanbi()
{
var str=window.document.getElementById('Hidden2').value;
fanhui(str);

}
</script>
</head>
<body onunload="guanbi();" >
<form id="form2" runat="server">

</form>
</body>
</html>
...全文
1526 125 打赏 收藏 转发到动态 举报
写回复
用AI写文章
125 条回复
切换为时间正序
请发表友善的回复…
发表回复
掀乱书页的风 2011-03-23
  • 打赏
  • 举报
回复
学习一下
li358871791 2011-03-18
  • 打赏
  • 举报
回复
楼主说的问题我在开发一个ERP项目时也遇到过、
aigezi309 2010-07-05
  • 打赏
  • 举报
回复
学习学习!
yachen826xinwei 2010-06-08
  • 打赏
  • 举报
回复
学习,来此寻找答案~~
jqlong2002 2010-04-02
  • 打赏
  • 举报
回复
我是来学习的
Cyanapple_wen 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 sp1234 的回复:]
其实大多数javascript程序员只能做很简单的程序。
[/Quote]
完全同意这个观点
xiao_run 2010-04-01
  • 打赏
  • 举报
回复
j f
路边小摊 2010-04-01
  • 打赏
  • 举报
回复
恩,这个不错啊,值得学习一下
tangyimin13 2010-04-01
  • 打赏
  • 举报
回复
学习 接分
Kevin_jun 2010-04-01
  • 打赏
  • 举报
回复
用DIV 模拟弹出窗口,既可以共享数据,又可以局部更新,更容易定制界面
zhucel 2010-04-01
  • 打赏
  • 举报
回复
学习一下
javacn_org 2010-04-01
  • 打赏
  • 举报
回复
虽然只是来 接分的
不过也相信看了 不错
迪卡 2010-03-31
  • 打赏
  • 举报
回复
学习,学习!!
zhangmingtao1234 2010-03-31
  • 打赏
  • 举报
回复
学习
子页面还没有用过
wangbin1986 2010-03-31
  • 打赏
  • 举报
回复
就是子页面修改数据后刷新父页面数据
使用frame框架+javascript刷新可以实现
zjfeng1984 2010-03-31
  • 打赏
  • 举报
回复
看看,顺便接分
menglei0208 2010-03-31
  • 打赏
  • 举报
回复
我不是太明白 学习一下
cdyitian 2010-03-31
  • 打赏
  • 举报
回复
只要用户的要求像C/S,就用AJAX+JQUERY肯定没错
likevs 2010-03-31
  • 打赏
  • 举报
回复
楼主,除了你上面的办法,你有否考虑过seesion这个东东?

当然,这东西很怕的就是超时问题,配合cookie吧


对于像JS这种各页面之间传一些特定值时,这东东还是有点儿用的,无论是同步还是异步


cdyitian 2010-03-31
  • 打赏
  • 举报
回复
用AJAX很方便
加载更多回复(103)

62,074

社区成员

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

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

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

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