zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript弹出窗体点击按钮返回选择数据的实现

JavaScript数据 实现 选择 返回 点击 按钮 弹出
2023-06-13 09:14:17 时间
首先是父页面的代码:
复制代码代码如下:

<headrunat="server">
<title>无标题页</title>
<%--<scripttype="text/javascript">
functionopenDia(){
varreturned=window.showModalDialog("Default4.aspx?"+(newDate()),window);
if(returned){
document.getElementById("ret").innerHTML=returned;
}
else{
document.getElementById("ret").innerHTML="";
}
}
</script>--%>
<scripttype="text/javascript">
functionopenDia(){
varreturned=window.showModalDialog("Default3.aspx?"+(newDate()),window);
if(returned){
document.getElementById("tbtext").value=returned;
}
else{
document.getElementById("tbtext").value="";
}
}
</script>
</head>
<body>
<formid="form1"runat="server">
<divid="ret">
<inputid="tbtext"type="text"value=""onclick="openDia();returnfalse;"/>
</div>
<asp:ButtonID="Button1"runat="server"Text="Button"OnClientClick="openDia();returnfalse;"/>
<inputid="Hidden1"type="hidden"runat="server"/>
</form>
</body>
</html>

关于加上那个(newData())是要避免showModalDialog页面自动缓存的问题,导致第二次打开页面,数据没有被刷新,这是因为showModalDialog页面如果每次的URL一样的话,它会自动显示以前在缓存里面的数据。
接着是子页面Default3.aspx的代码:
复制代码代码如下:

<headrunat="server">
<title>无标题页</title>
<scripttype="text/javascript">
functiongetSelected(data){
varstr=data;
window.returnValue=str.toString();
window.close();
}
</script>
<basetarget="_self"/>
</head>
<body>
<formid="form1"runat="server"target="">
<div>
<asp:GridViewID="GridView1"runat="server"OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButtonid="lnkSelect2"runat="server"Text="Select"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
 </div>
</form>
</body>
</html>

Default3.aspx里面有一个gridview控件,数据绑定(自己去绑定,代码就不贴上来了)好后,就是选择自己需要的数据了。
Default3.aspx.cs:
[code]
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
LinkButtonb=(LinkButton)e.Row.FindControl("lnkSelect2");
b.Attributes.Add("OnClick","javascript:getSelected(""+e.Row.Cells[1].Text+"");");
}
}
[html]
其中Default3.aspx中<head></head>之间的<basetarget="_self"/>和<formtarget="">作用是可以避免子页面点击选择按钮后弹出第三个窗体。
例子就这样,具体还是要根据自己的需求s去体验和改进。