主页面弹出问题!完成给分!

nellstoke 2008-04-11 02:17:17
现在在做一个项目!够怄气的了,有个十分严重的地方出现问题,具体如下:

一个名为page.aspx的页面,现在在这个页面里面有个名为btn_searchWeb控件存在,它的作用主要是:点击它后在page.aspx的最前端显示一个页面,而且在显示该页面的时候,page.aspx页面的背景色是灰色,且无法相应用户的任何操作,只有在把这个显示在最前端的页面关闭。才恢复成可编辑状态,而且,在该页面中有个显示数据库中的数据表格,在鼠标点击该表格中某一行时,记录并且关闭页面然后返回该行数据的'id','name','password'等有关数据,分别显示在page.aspx页面中的txt_id,txt_name,txt_pwd等文本控件。

问题:
1,如何完成在父页面page.aspx中通过点击按钮弹出包含文本,下拉,单选按钮等可编辑元素的子页面呢?(注意,是在page.aspx页面弹出这个页面,不是新建一个页面然后弹出)。
2,这个页面包含一个专门负责显示数据库中某个表的数据(暂时名为:infor表)的数据表格,是可选定的表格,请问如何做鼠标点击后该页面关闭返回鼠标所点击的相关行的数据的相应字段数据然后返回到page.aspx相应控件中。
3,请问,这个弹出的窗体应该怎么构建,这个构建包括:文本框,下拉菜单,单选框还有类似于水晶报表或者gridview这个数据表格容器。

(如果是AJAX方式写,可否明确标明是用什么控件完成,刚接触AJAX,控件不了解;如果是JS方式写,请加上注释好不。)

万分感谢,如果能解决,我想结交这个朋友,请mail我:
...全文
761 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wddvslh 2012-01-12
  • 打赏
  • 举报
回复
我看了5楼的方法 但是有一个问题 就是 我选择弹出窗口中GridView中数据时弹出窗口关闭 数据不会显示在父窗口中 急 !
tjoy 2011-07-20
  • 打赏
  • 举报
回复
学习了~~~~~~~~~~~~~~~~~~~~·
劲取雅致 2010-03-18
  • 打赏
  • 举报
回复
回帖看看
春天的气息 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhuanshen712 的回复:]
刚才已经测试了5楼的方法,基本上正确。
搂主不要不要忘了在 <html>标签后面加上 <base target="_self">这句话,否则的话,关闭弹出窗口的时候会出现一个新窗口。
还有:
在主页面的js中:
showModalDialog('subpage.aspx','subpage'....
这个subpage是一个变量,搂住可以改成任意的变量,如:可以根据这个变量在弹出的新窗口中作为数据库的查询条件或者是选择数据库表。
[/Quote]

这个比较简便!
lishijie910123 2008-04-11
  • 打赏
  • 举报
回复
学习了
DotNet灵魂 2008-04-11
  • 打赏
  • 举报
回复
我不是用showModalDialog解决的

图片发不了 郁闷
从这个网址看吧,包括源代码(c#)下载
http://blog.csdn.net/ycs0501/archive/2008/04/11/2282768.aspx
DotNet灵魂 2008-04-11
  • 打赏
  • 举报
回复
我不是用showModalDialog解决的
效果图如下:
Ally2009 2008-04-11
  • 打赏
  • 举报
回复
The ModalPopupExtender in Microsoft's ajax control toolkit is recommended.
JustLovePro 2008-04-11
  • 打赏
  • 举报
回复
我也测试通过,
学习了~
zhuanshen712 2008-04-11
  • 打赏
  • 举报
回复
刚才已经测试了5楼的方法,基本上正确。
搂主不要不要忘了在<html>标签后面加上<base target="_self">这句话,否则的话,关闭弹出窗口的时候会出现一个新窗口。
还有:
在主页面的js中:
showModalDialog('subpage.aspx','subpage'....
这个subpage是一个变量,搂住可以改成任意的变量,如:可以根据这个变量在弹出的新窗口中作为数据库的查询条件或者是选择数据库表。
SaintKaKa 2008-04-11
  • 打赏
  • 举报
回复
sry...
刚才粗心写错了,非常抱歉..
子页subpage.aspx中的gridview的rowdatabound事件里的应该这样写
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "cc('" + e.Row.Cells[0].Text + "','" + e.Row.Cells[1].Text + "','" + e.Row.Cells[2].Text + "')");
}
yb1124 2008-04-11
  • 打赏
  • 举报
回复
ls讲的很详细
SaintKaKa 2008-04-11
  • 打赏
  • 举报
回复
1楼的js正确
详细给你解释一下:
1.父页page.aspx
你的btn_searchWeb按钮如果是服务器控件,则给该按钮添加 OnClientClick="return vv()",
如果是html按钮则添加 onclick="vv()"
例如:<asp:Button ID="btn_searchWeb" runat="server" OnClientClick="return vv()">
父页page.aspx的javascript:

  function vv() 
{
var result=showModalDialog('subpage.aspx','subpage','dialogWidth:400px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no'); //打开模态子窗体,并获取返回值
document.getElementById("txt_id").value=result.split("'")[0]; //返回值分别赋值给相关文本框
document.getElementById("txt_name").value=result.split("'")[1];
document.getElementById("txt_pwd").value=result.split("'")[2];
}



2.子页subpage.aspx

 function cc(infor_id,infor_name,infor_psw) //参数分别为id,name和password
{
window.returnValue= infor_id+"'"+infor_name+"'"+infor_psw; //返回值
window.close();
}


在子页的gridview的rowdatabound事件里添加代码(假设gridview的第1列是id,第2列是name,第3列是password)
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "cc('" + this.GridView1.Rows[0].Cells[0].Text + "','" + this.GridView1.Rows[0].Cells[1].Text + "','" + this.GridView1.Rows[0].Cells[2].Text + "')");
}

闲游四疯 2008-04-11
  • 打赏
  • 举报
回复
UP
ljmay168 2008-04-11
  • 打赏
  • 举报
回复
如果用微软的AJAX,可用ModalPopupExtender控件.把要弹出窗体的控件放在一个Panel中就可以.
zhuanshen712 2008-04-11
  • 打赏
  • 举报
回复
呵呵,这个东西挺常见的,网上应该挺多吧。
live_7sky 2008-04-11
  • 打赏
  • 举报
回复
主页面
<script language="javascript" type="text/javascript">
function vv()
{
showModalDialog('downs.aspx','down','dialogWidth:400px;dialogHeight:300px;center:yes;help:no;resizable:no;status:no')

}
</script>

子页面
<script language="javascript" type="text/javascript">
function cc()
{

/* 正确赋值*/
var newoption=window.dialogArguments.document.createElement("Option")
newoption.text=document.getElementById('s2').value;
window.dialogArguments.document.getElementById("ss").options.add(newoption);

/*子窗体将值传回父窗体,由父窗体处理*/
window.returnValue= document.getElementById('s2').value;

window.close();
}

62,254

社区成员

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

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

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

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