日期:2014-05-17  浏览次数:20358 次

高分求:弹出页面并把值返回给父页面
父页面Page.aspx有一个<asp:DropDownList runat="server" ID="ddlJDLX" >,一个<asp:TextBox runat="server" ID="txtJDMC">,一个<asp:Button runat="server" ID="btnSel" Text="搜索" />。
当ddlJDLX选定后,点击btnSel弹出一个子页面Sub.aspx,把ddlJDLX的值传给Sub.aspx,它的值是一个数据库的表名tabname。
在显示该页面的时候,page.aspx页面的背景色是灰色,且无法相应用户的任何操作,只有把Sub.aspx关闭,page.aspx才恢复成可编辑状态。
Sub.aspx里根据传过来的表名tabname,从库里查出该表下的所有数据并显示在GridView里,对GridView里某行,双击的时候,把它的第一列和第二列的值连接成一个字符串,传回给Page.aspx的txtJDMC,并关闭Sub.aspx页面,page.aspx恢复成可编辑状态。

问题:
1。什么办法弹出这个页面,并达到我的要求。
2。tabname是动态变化的,查询的sql语句如何编写,表名是变的。
3。如何把GridView选择行的第一列和第二列的值连接成一个字符串,并返回给page.aspx的txtJDMC。



------解决方案--------------------
Ajax可以实现你的需求
------解决方案--------------------
通过js框架实现,如jquery
------解决方案--------------------
jquery
------解决方案--------------------
表名和字段名参数化
function Fun()
{
var d=document.getElementById("div1");
var arr=new Array("AA","BB");
var dg=window.showModalDialog("c.html",arr,"dialogWidth:300px;dialogHeight:300px;");
if(dg!=null)
{
for(i=0;i<dg.length;i++)
{
d.innerText+=dg[i]+" ";
}
}
}
按钮点击页面,点击弹出c.html
function Fun()
{
var a=document.getElementById("txt1");
var b=document.getElementById("txt2");
var arr=new Array(a.value,b.value);

window.returnValue=arr;
window.close();
}
var r=window.dialogArguments;
var d=document.getElementById("div1");
for(m=0;m<r.length;m++)
{
d.innerText+=r[m]+" ";
}
</script>

txt1,txt2为弹出页面的需要传回的数据
------解决方案--------------------
通过js,jquery
------解决方案--------------------
1当点击按钮的时候,探出模式窗口,通过js,或者jquery,当关闭的时候父页面可用,
2那就查询所有吧,然后绑定,
3这个可以,得到第一列和第二列的数据然后拼一下
回答简陋,但肯定能做到
------解决方案--------------------
jwindow弹出页面
<SCRIPT src=".js/ui.mouse.js" type=text/javascript></SCRIPT>
<SCRIPT src="js/ui.draggable.js" type=text/javascript></SCRIPT>
<SCRIPT src="js/jquery.jwindow.js" type=text/javascript></SCRIPT>
<script>
function OpenWindow(id,width,height)
{
var p = document.getElementById("<%=hf_Id.ClientID %>").value;
var url = "a.aspx?Id="+id+"&pId="+p;
OpenJWindow('#openwin', url, width,height, EditClosed);
}
function SetTitle(url)
{
var obj = document.getElementById("winTitle");

if(url.lastIndexOf("Id") >0){
obj.innerHTML ="编辑";
return;

obj.innerHTML ="新增";
}
function EditClosed(result) {
if (result == "0") return;
document.getElementById("<%=LinkButton1.ClientID %>").click();
return false;
}
OpenWindow('', 750,340);
子页面
 function CloseClientJWindow(result, isInIFrame)
{
var p = null;
if(isInIFrame)
{
p = self.parent;
if(p == null) return;
}
else
{
p = self;
}
p.jWindow.close(p.$('#openwin'),result);
}
------解决方案--------------------
弹出层不是更方便吗?
------解决方案--------------------