特急,关于ASP.NET页面传值问题!! 现在有个项目,要做这样的效果,A页面上,点击按钮弹出一个窗口(窗口里面可以查询商家的名称和编号),点击窗口里面的一条记录,窗口关闭,商家名称添加到A页面上面的textbox控件里。请大侠们提供思路,最好是能有源码告知,特急!!!!【小窗口里面我用的是gridview显示数据】 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 模态窗口http://blog.sina.com.cn/s/blog_549941cb0100p9wn.html get,post,viewstate,window.open(),window.showmudledialog(),session,cookir,transfer,application,crosspostpage. 这个是打开你的那个小窗口function OpenAddWin() { var returnVal =window.showModalDialog("ZoneInfo.aspx?flag=add",window, 'dialogWidth= '+"700" + 'px;dialogHeight= '+"400"+ 'px;help:no;status:no;resizable:no;scro ll:no; ') if(returnVal == 'True') { //window.dialogArguments.location.reload(); } }这个是你窗口关闭时间中的写法Response.Write("<script> window.returnValue=1;window.close();</script>");然后到你的显示画面得到上面javascript的值放入textbox中! 这样做,在窗口中进行查询,有问题,它会跳转到ZoneInfo.aspx页面,不在这个窗口 function OpenAddWin() { var returnVal =window.showModalDialog("ZoneInfo.aspx?flag=add",window, 'dialogWidth= '+"700" + 'px;dialogHeight= '+"400"+ 'px;help:no;status:no;resizable:no;scro ll:no; ') if(returnVal == 'True') { //window.dialogArguments.location.reload(); } }这段代码是你的A页面按钮激发的!至于ZoneInfo.aspx就是你的要查询的小窗口这个效果不是跳转 而是在当前页面打开一个模态的小窗口,假如打开的小窗口为B 那个B就在A的上面打开在B没有关闭的时候A画面不能进行编辑 我试过了,我在弹出窗口B,窗口B上也有一个简单查询,我点击B窗口上的查询后,会弹出一个B页面,也就是说A页面上会出现一个B窗口和一个B页面,这种情况 试试用一下iframe<form id="form1" runat="server" target="bbc2188"> <iframe name="bbc2188" width="0" height="0" frameborder="0" style="display: none"></iframe>这个写到你的小画面里面只要写<iframe这段就行 然后在你的form 加target= 内容就是你iframe的name属性 关于在窗口查询弹出页面的问题解决了,只要在窗口调用的页面的<head>之间加<base target="_self" />指定还是本身就ok了 http://www.cnblogs.com/skykang/archive/2010/06/04/1751261.html JS解决。 父子页面传值。 ------------------------------demo://打开一个子窗体<script type="text/javascript"> function fnOpen() { var returnTarget = window.showModalDialog("Default3.aspx",oForm.oArguments.value) if(returnTarget != undefined && returnTarget.length > 0) { //document.location = returnTarget; oForm.oArguments.value=returnTarget; oForm.TextBox1.value= returnTarget; } } </script></head><body> <form id="oForm" runat="server"> <table> <tr> <td> <input type="text" name="oArguments" id="oArguments" /> <input type="button" id="button" value="打开子窗体" onclick="fnOpen()" /></td> </tr> </table> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </form>//子窗体的方法,给ID为oArgs的控件赋于传过来的值; <script type="text/javascript"> window.onload=fnInit; function fnInit() { lb.innerHTML =window.dialogArguments;//not runat ="server" form1.oArgs.value=window.dialogArguments;//runat ="server" 获取父窗体传递过来的值 } function exit() { window.returnValue = form1.oArgs.value; //返回值 window.close(); } </script></head><body> <form id="form1" runat="server"> <div> 传递过来的值: <input type="text" id="oArgs" runat ="server"/><span id = "lb"></span> <input id="button" name="button" type="button" value="关闭窗口" runat ="server" onclick="exit()"/> </div> </form>----------------------------使用window.openg()如果是父窗体是使用:window.open()打开子窗体的,那么还可以使用:window.opener.document.getElementById('name').value = "xxx"这条语句就可以修改父窗体中控件的值了。 现在问题是:窗口打开了,但是点击gridview的某一行,值传递不到A页面上的textbox控件里gridview 点击获取值的解决办法以及获取了数据怎样传递到A页面上的控件里 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { string id = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "id")); string no = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "no")); HyperLink hl1 = ((HyperLink)e.Row.FindControl("hylinNo")); RadioButton rb = (RadioButton)e.Row.FindControl("radSelect"); if (rb != null) { rb.Attributes.Add("onclick", "judge(this)"); } if (e.Row.RowType == DataControlRowType.DataRow) { hl1.NavigateUrl = "ZoneInfo.aspx?id=" + id + "&no=" + no + "&flag=info"; } }gridview加载的时候就给上面的连接附上值个连接 然后再你界面上给这个连接加一个onclick方法让他关闭本画面 没有用 能不能给个完整的案例 效果技术A页面有个TextBox,一个Button,点击Button弹出一个(模态)窗口,窗口是调用B页面(B页面一个TextBox,一个Button按钮,输入条件查询到数据库相应的数据,读取到Gridview中),点击Gridview的一行获取该行的一列值,该值显示到A页面上的TextBox中,同时窗口也关闭 跨页传值是比较麻烦的特别还要从子页传参触发父页的代码感觉lz这个需求可以换个思路的不要用iframe一般都是利用js div 来形成弹出窗口的效果但是实际代码都是在同一页的我去写个例子 <!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><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>例子</title><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script><script>$(function(){ $("#btn").click(function(){ $("#div1").show(); }) $(".AAA").click(function(){ $("#text1").val($(this).text()); $("#div1").hide(); })})</script></head><style>#div1{display:none;position:absolute;top:40px;left:100px; border:solid 1px #999;}li{ cursor:pointer;}</style><body><input type="text" id="text1" value="xxx" /><input type="button" id="btn" /><div id="div1"><ul><li class="AAA">AAAAAAAAAAA</li><li class="AAA">BBBBBB</li><li class="AAA">CCCCA</li><li class="AAA">DDDDAAAA</li><li class="AAA">EEEEEEAAA</li><li class="AAA">FFFFFFFFFFFFA</li></ul></div></body></html> http://blog.csdn.net/michaelgong/article/details/6399780 看看这个吧比较简单,也是子窗口与父窗口传值! 模拟窗口weebox,google找一下就有,然后js控制。 子窗口也可以调用父窗口的控件或者方法的。 this.Parent.具体控件或者定义的变量, 但是定义的必须都是public 方法很多。 我常用这个 1, A页面<script language="javascript" type="text/javascript">var returnValue=showModalDialog("MSTW002.aspx");//TODOdocument.getElementById("textbox").value=returnValue; //html controldocument.getElementById("<%=textbox.ClientID%>").value=returnValue;//asp.net control</script>2, 弹出页面2.1, 在<head>里添加<base target=“_self”>2.2, window.returnValue = 商家名称; window.close(); [img=http:/ DevExpress.XtraNavBar.NavBarControl 隐藏 “Add Or Remove Button” 求教 关于Graphics的问题~~ c#中输入两个数字,以空格隔开 遍历数据集时删除某行 c#第3版中关于构造器的问题~~~ 跳圈游戏...拜托大家帮忙有没有改进一下..随便什么语言...谢谢了... 移动彩信mm7协议发送彩信出现3002“消息被拒绝”返回包是什么原因? 关于datetimepicker控件的问题 关于TabContol 请教Nhibernate的NHibernate.ByteCode.LinFu.ProxyFactoryFactory问题 如何更好的对RFID卡进行批量读写? (好资源分享)一步一步学Linq to sql
http://blog.sina.com.cn/s/blog_549941cb0100p9wn.html
session,cookir,transfer,application,crosspostpage.
这个是打开你的那个小窗口
function OpenAddWin()
{
var returnVal =window.showModalDialog("ZoneInfo.aspx?flag=add",window, 'dialogWidth= '+"700" + 'px;dialogHeight= '+"400"+ 'px;help:no;status:no;resizable:no;scro ll:no; ')
if(returnVal == 'True') {
//window.dialogArguments.location.reload();
}
}这个是你窗口关闭时间中的写法Response.Write("<script> window.returnValue=1;window.close();</script>");
然后到你的显示画面得到上面javascript的值放入textbox中!
function OpenAddWin()
{
var returnVal =window.showModalDialog("ZoneInfo.aspx?flag=add",window, 'dialogWidth= '+"700" + 'px;dialogHeight= '+"400"+ 'px;help:no;status:no;resizable:no;scro ll:no; ')
if(returnVal == 'True') {
//window.dialogArguments.location.reload();
}
}这段代码是你的A页面按钮激发的!至于ZoneInfo.aspx就是你的要查询的小窗口
这个效果不是跳转 而是在当前页面打开一个模态的小窗口,假如打开的小窗口为B 那个B就在A的上面打开在B没有关闭的时候A画面不能进行编辑
<iframe name="bbc2188" width="0" height="0" frameborder="0" style="display: none"></iframe>这个写到你的小画面里面只要写<iframe这段就行 然后在你的form 加target= 内容就是你iframe的name属性
demo://打开一个子窗体
<script type="text/javascript">
function fnOpen()
{
var returnTarget = window.showModalDialog("Default3.aspx",oForm.oArguments.value)
if(returnTarget != undefined && returnTarget.length > 0)
{
//document.location = returnTarget;
oForm.oArguments.value=returnTarget;
oForm.TextBox1.value= returnTarget;
}
}
</script>
</head>
<body>
<form id="oForm" runat="server">
<table>
<tr>
<td>
<input type="text" name="oArguments" id="oArguments" />
<input type="button" id="button" value="打开子窗体" onclick="fnOpen()" /></td>
</tr>
</table>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</form>//子窗体的方法,给ID为oArgs的控件赋于传过来的值;
<script type="text/javascript">
window.onload=fnInit;
function fnInit()
{
lb.innerHTML =window.dialogArguments;//not runat ="server"
form1.oArgs.value=window.dialogArguments;//runat ="server" 获取父窗体传递过来的值
}
function exit()
{
window.returnValue = form1.oArgs.value; //返回值
window.close();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
传递过来的值: <input type="text" id="oArgs" runat ="server"/><span id = "lb"></span>
<input id="button" name="button" type="button" value="关闭窗口" runat ="server" onclick="exit()"/>
</div>
</form>----------------------------
使用window.openg()如果是父窗体是使用:window.open()打开子窗体的,那么还可以使用:
window.opener.document.getElementById('name').value = "xxx"
这条语句就可以修改父窗体中控件的值了。
gridview 点击获取值的解决办法以及获取了数据怎样传递到A页面上的控件里
{
string id = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "id"));
string no = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "no"));
HyperLink hl1 = ((HyperLink)e.Row.FindControl("hylinNo")); RadioButton rb = (RadioButton)e.Row.FindControl("radSelect");
if (rb != null)
{
rb.Attributes.Add("onclick", "judge(this)");
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
hl1.NavigateUrl = "ZoneInfo.aspx?id=" + id + "&no=" + no + "&flag=info"; } }
gridview加载的时候就给上面的连接附上值个连接 然后再你界面上给这个连接加一个onclick方法让他关闭本画面
特别还要从子页传参触发父页的代码
感觉lz这个需求可以换个思路的
不要用iframe一般都是利用js div 来形成弹出窗口的效果
但是实际代码都是在同一页的我去写个例子
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>例子</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
$(function(){
$("#btn").click(function(){
$("#div1").show();
})
$(".AAA").click(function(){
$("#text1").val($(this).text());
$("#div1").hide();
})
})
</script>
</head>
<style>
#div1{display:none;position:absolute;top:40px;left:100px; border:solid 1px #999;}
li{ cursor:pointer;}
</style>
<body><input type="text" id="text1" value="xxx" />
<input type="button" id="btn" />
<div id="div1">
<ul>
<li class="AAA">AAAAAAAAAAA</li>
<li class="AAA">BBBBBB</li>
<li class="AAA">CCCCA</li>
<li class="AAA">DDDDAAAA</li>
<li class="AAA">EEEEEEAAA</li>
<li class="AAA">FFFFFFFFFFFFA</li>
</ul>
</div></body>
</html>
this.Parent.具体控件或者定义的变量, 但是定义的必须都是public 方法很多。 我常用这个
<script language="javascript" type="text/javascript">
var returnValue=showModalDialog("MSTW002.aspx");
//TODO
document.getElementById("textbox").value=returnValue; //html control
document.getElementById("<%=textbox.ClientID%>").value=returnValue;//asp.net control
</script>
2, 弹出页面
2.1,
在<head>里添加<base target=“_self”>
2.2,
window.returnValue = 商家名称;
window.close();