弹出窗体传值问题

nopart 2009-08-13 09:05:01
页面上有若干个TextBox,点击某个TextBox,通过 Attrbutts.Add("onClick","window.open(......)")形式打开一个弹出窗体,在弹出窗体上选定一个值,通过脚本将值赋给父页面的该TextBox,同时弹出窗体关闭。若再次单击该TextBox,若这个TextBox上已经赋过值,则要将值传到弹出窗体。
现在问题是脚本赋值是不刷新父页面的,所以没法将已赋过的值传送到弹出窗体,不知如何解决啊?
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lovely_baby 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 nopart 的回复:]
谢谢楼上各位,因为我的TextBox是点击Button动态增加啊,每点一次Button 就生成一个TextBox,依次为TextBox1、TextBox2、TextBox3……,所以我想把一些脚本写到.cs里面去,不知可不可行啊?
[/Quote]
那就要你自己抉择了
有些应该能用.cs方法替换
有些也许就不行
flyerwing 2009-08-13
  • 打赏
  • 举报
回复
将父窗口传入,然后通过,window.opener.document.get........
获取再复制就好了。
nopart 2009-08-13
  • 打赏
  • 举报
回复
谢谢楼上各位,因为我的TextBox是点击Button动态增加啊,每点一次Button 就生成一个TextBox,依次为TextBox1、TextBox2、TextBox3……,所以我想把一些脚本写到.cs里面去,不知可不可行啊?
我姓区不姓区 2009-08-13
  • 打赏
  • 举报
回复
写一个js的function:

function openWin(tb)
{
if(tb.value == "")
window.open("弹出页地址");
else
window.open("弹出页地址?value="+tb.value);
}


然后TextBox的Atrribute就这么加:

TextBox1.Attributes.Add("onclick","openWin(this)");


在弹出页的PageLoad中:

if(!string.IsNullOrEmpty(Request.QueryString["value"]))
{
//为你的控件选定值
}


弹出页的按钮单击脚本:

function closeWin()
{
var tb = window.opener.document.getElementById("父页面上TextBox的ClientID");
if(tb)
{
tb.value = 选定值;
}
}
wdzr_826 2009-08-13
  • 打赏
  • 举报
回复
呵呵,楼上正解!
Geogehu 2009-08-13
  • 打赏
  • 举报
回复
不要用window.open。
用window.showModalDialog();
以下为参考代码。


wName1=window.showModalDialog("../OpenWindows/open_UnitNameOnly.aspx?tmp="+num+"&requeststr="+str+"","window", "dialogWidth:400px;DialogHeight=480px;status:no;scroll=yes;help:no");
if(wName1!=null && wName1!= "undefined")
{
document.getElementById("Unit").value=wName1;
}

pt1314917 2009-08-13
  • 打赏
  • 举报
回复

//A.aspx代码:
<body>
<form id="form1" runat="server">
<div>
性别:
<asp:TextBox ID="tbsex" runat="server" onclick="javascript:link();"></asp:TextBox>
</div>

</form>
</body>
<script>
function link()
{
var obj = document.getElementById("tbsex");
var sex=window.showModalDialog("show.htm?tbsex="+obj.value);
if(sex!=undefined)
{
obj.value=sex;
}
}
</script>

//show.htm
<body onload="setvalue();">
<select id="Select1" style="width: 44px">
<option selected="selected" value="男">男</option>
<option value="女">女</option>
</select>
<input type="button" value="确定" onclick="wsp();window.returnValue=sex;window.close();"/>
</body>
</html>
<script>
var sex;
function wsp()
{
sex=document.all("Select1").value;
}
function setvalue()
{
var csex=window.location.toString().getQuery('tbsex');
document.all("Select1").value=csex;
}
String.prototype.getQuery = function(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = this.substr(this.indexOf("\?")+1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
</script>

nopart 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pt1314917 的回复:]
webform?
[/Quote]这个显然啊。
pt1314917 2009-08-13
  • 打赏
  • 举报
回复
webform?

62,039

社区成员

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

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

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

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