Posted in Javascript onApril 01, 2010
首先是父页面的代码:
<head runat="server"> <title>无标题页</title> <%-- <script type="text/javascript"> function openDia() { var returned = window.showModalDialog("Default4.aspx?" + (new Date()), window); if (returned) { document.getElementById("ret").innerHTML = returned; } else { document.getElementById("ret").innerHTML = ""; } } </script> --%> <script type="text/javascript"> function openDia(){ var returned = window.showModalDialog("Default3.aspx?" + (new Date()), window); if (returned){ document.getElementById("tbtext").value = returned; } else{ document.getElementById("tbtext").value = ""; } } </script> </head> <body> <form id="form1" runat="server"> <div id="ret"> <input id="tbtext" type="text" value="" onclick="openDia();return false;" /> </div> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="openDia();return false;" /> <input id="Hidden1" type="hidden" runat="server" /> </form> </body> </html>
关于加上那个 (new Data()) 是要避免showModalDialog页面自动缓存的问题,导致第二次打开页面,数据没有被刷新,这是因为showModalDialog页面如果每次的URL一样的话,它会自动显示以前在缓存里面的数据。
接着是子页面Default3.aspx的代码:
<head runat="server"> <title>无标题页</title> <script type="text/javascript"> function getSelected(data) { var str = data; window.returnValue = str.toString(); window.close(); } </script> <base target="_self"/> </head> <body> <form id="form1" runat="server" target=""> <div> <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:LinkButton id="lnkSelect2" runat="server" Text="Select" > </asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
Default3.aspx里面有一个gridview控件,数据绑定(自己去绑定,代码就不贴上来了)好后,就是选择自己需要的数据了。
Default3.aspx.cs:
[code]
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton b = (LinkButton)e.Row.FindControl("lnkSelect2");
b.Attributes.Add("OnClick", "javascript:getSelected('" + e.Row.Cells[1].Text + "');");
}
}
[html]
其中Default3.aspx中<head></head>之间的<base target="_self"/>和<form target="">作用是可以避免子页面点击选择按钮后弹出第三个窗体。
例子就这样,具体还是要根据自己的需求s去体验和改进。
JavaScript 弹出窗体点击按钮返回选择数据的实现
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@