【紧急】GridView子窗口向父窗口传值问题?

mzjmicrosoft 2009-10-12 04:28:32
现描述问题如下:

1、父窗体:

<script type="text/javascript">
function XuanZeContract()
{
window.showModalDialog('子窗体.aspx','newwindow','height=300,width=500,top='+(screen.AvailHeight-300)/2+',left='+(screen.AvailWidth-300)/2+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
}


父窗体后台取值:
TextBox1.Text = Request.QueryString["id"];

<input id="Button3" type="button" value="选择" onclick="XuanZeContract()" />


2、子窗体后台双击选择:


  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//鼠标双击事件
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onDblClick", "javascript:top.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");
}
}


3、父窗体打开子窗体后 双击选择某行值后没有跳转到父窗体,而是重新起了一页:父窗体.aspx?id=xxxxx
怎样才能让它到父窗口而不是重新起一页呢?

这是小弟的处女帖,从来没在CSDN上提问过,忘大哥们多多指教,小弟感谢不尽!!!



...全文
1080 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
liye0005 2011-12-03
  • 打赏
  • 举报
回复
怎么单击鼠标不可以呀,怎么改
weng000123 2011-07-22
  • 打赏
  • 举报
回复
mark
ruolins 2010-06-15
  • 打赏
  • 举报
回复
前来看看
shuangchonggeng 2009-12-22
  • 打赏
  • 举报
回复
学习
tiger波波 2009-10-12
  • 打赏
  • 举报
回复
标记
mzjmicrosoft 2009-10-12
  • 打赏
  • 举报
回复
问题已经解决


子窗体:window.open()

父窗体:javascript:opener.location.href=''



mzjmicrosoft 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 mngzilin 的回复:]
<script type="text/javascript">
        function XuanZeContract()
        {
            window.open('子窗体.aspx','newwindow','height=300,width=500,top='+(screen.AvailHeight-300)/2+',left='+(screen.AvailWidth-300)/2+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
        }


e.Row.Attributes.Add("onDblClick", "javascript:opener.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");

[/Quote]

正解
可以结贴
  • 打赏
  • 举报
回复



function XuanZeContract(TextBox1) {//把你的TextBox1传到这个函数里
var args = new Array(1);
var strResult = window.showModalDialog('子窗体.aspx',args, 'height=300,width=500,top=' + (screen.AvailHeight - 300) / 2 + ',left=' + (screen.AvailWidth - 300) / 2 + ',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');

if (strResult == 0) {
return false;
}
//取你数组里的值,就是那边页面返回来的
TextBox1.value = args[0];

}



protected void btnSave_Click(object sender, EventArgs e) //子窗体提交按钮
{
StringBuilder sbJS = new StringBuilder();
sbJS.Append("<script type='text/javascript'>\n");
sbJS.Append("var args=window.dialogArguments;");
sbJS.Append("args[0]='" + "你要返回的到父窗体的值" + "';\n");
sbJS.Append("window.returnValue=1;\n");
sbJS.Append("window.close();\n");
sbJS.Append("</script>");
Response.Write(sbJS.ToString());
Response.End();
}
mngzilin 2009-10-12
  • 打赏
  • 举报
回复
<script type="text/javascript">
function XuanZeContract()
{
window.open('子窗体.aspx','newwindow','height=300,width=500,top='+(screen.AvailHeight-300)/2+',left='+(screen.AvailWidth-300)/2+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
}


e.Row.Attributes.Add("onDblClick", "javascript:opener.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");
laoyingisme 2009-10-12
  • 打赏
  • 举报
回复
曾经碰到过
这得在Load添加Double_Click()事情
还要加GridView_RowDataBound里添加事情
camperer 2009-10-12
  • 打赏
  • 举报
回复
呃,#7楼,我一开始也想让楼主试下opener的,但后来想showModalDialog()跟window.open()不一样,showModalDialog获取父窗口,需要显示作为参数传入vArguments
sohighthesky 2009-10-12
  • 打赏
  • 举报
回复
设置returnValue后,关闭子窗体
mzjmicrosoft 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 randomfeel 的回复:]
e.Row.Attributes.Add("onDblClick", "javascript:window.opener.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");

[/Quote]

这个也已试,不但无效而且报错:window.opener.location无效或不是对象
sohighthesky 2009-10-12
  • 打赏
  • 举报
回复
子窗体中widow.returnValue="要返回父窗体值"

function XuanZeContract()
{
var rev= window.showModalDialog('子窗体.aspx','newwindow','height=300,width=500,top='+(screen.AvailHeight-300)/2+',left='+(screen.AvailWidth-300)/2+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
alert(rev);
}
mngzilin 2009-10-12
  • 打赏
  • 举报
回复
e.Row.Attributes.Add("onDblClick", "javascript:window.opener.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");
randomfeel 2009-10-12
  • 打赏
  • 举报
回复
e.Row.Attributes.Add("onDblClick", "javascript:window.opener.location.href='父窗体.aspx?id=" + e.Row.Cells[1].Text.ToString() + "';window.close();");
SK_Aqi 2009-10-12
  • 打赏
  • 举报
回复
再次关注,这个功能很普遍,期待
happy664618843 2009-10-12
  • 打赏
  • 举报
回复
target="_self"
mzjmicrosoft 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 camperer 的回复:]
子页窗口双击选择后,不把子窗口关闭就直接跳转父窗体吗?
你在子窗口的 <head>和 <body>之间加上
<base target="_self" />
试试
[/Quote]


已试,无效
SK_Aqi 2009-10-12
  • 打赏
  • 举报
回复
学习了.
加载更多回复(2)

62,046

社区成员

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

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

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

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