ASP.NET中使用showModalDialog实现弹窗传值与返回

作者:开源拾贝时间:2026-10-25 17:12:44浏览:93

本文介绍在ASP.NET环境中,如何利用window.showModalDialog打开模态对话框并获取用户选择数据。通过Default.aspx页面调用弹窗,在WebDialog.aspx中收集员工ID、名称及职称ID,并将结果数组通过window.returnValue返回至父页面,最终赋值给对应TextBox控件。

Default.aspx前端弹窗调用实现

1. Default.aspx 页面


代码如下:

 
<script type="text/javascript">
function GetUser(TxtEmpID, TxtEmpName, url)
{ 
var properties = 'status:no;resizable:no;toolbar=no;menubar=no;location=no;scroll:no;dialogWidth:540px;dialogHeight:450px;'
var arg=window.showModalDialog(url,"",properties);
if(arg!=null)
{ 
document.getElementById(TxtEmpID).value=arg[0];
document.getElementById(TxtEmpName).value=arg[1];
} 
} 
</script>
<table width="240px" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 80px">
<asp:Label ID="Label1" runat="server" Text="選擇課級別一" Width="80px" class="font-w"></asp:Label></td>
<td style="width: 80px">
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="false" Width="80px" onfocus="this.blur()"></asp:TextBox>
</td>
<td style="width: 80px">
<asp:TextBox ID="TextBox2" runat="server" ReadOnly="false" Width="80px" ></asp:TextBox>
</td>
<td style="width: 80px">
<asp:Button ID="Button1" runat="server" Text="確定" OnClick="Button1_Click" CssClass="ButtonCss"/>
</td>
<td>
<asp:Label ID="Label3" runat="server" Text=""></asp:Label></td>
<td> <asp:Label ID="Label4" runat="server" Text=""></asp:Label></td>
</tr>
</table>

Default.aspx.cs后台注册事件

2. Default.aspx.cs


代码如下:

 
protected void Page_Load(object sender, EventArgs e)
{ 
TextBox1.Attributes.Add("onclick", "GetUser('" + this.TextBox1.ClientID + "','" + this.TextBox2.ClientID + "','WebDialog.aspx)");
} 

WebDialog.aspx子页面数据返回

3. WebDialog.aspx


代码如下:

 
<script language="javascript" type="text/javascript">
function Submit()
{ 
var arr=new Array();
arr[0]= document.getElementById('TxtEmpID').value
arr[1]= document.getElementById('TxtEmpCName').value
arr[2]= document.getElementById('TxtTitleID').value
window.returnValue=arr;
window.close();
} 
</script>
<table>
<tr><td>
<asp:TextBox ID="TxtEmpID" runat="server" Width="50px" ReadOnly="true" CssClass="InputCss"></asp:TextBox>
<asp:TextBox ID="TxtEmpCName" runat="server" Width="60px" ReadOnly="true" CssClass="InputCss"></asp:TextBox>
<asp:TextBox ID="TxtTitleID" runat="server" Width="40px" ReadOnly="true" CssClass="InputCss"></asp:TextBox>
</tr></td>
<tr><td>
<input id="Button1" type="button" value="確 定" onclick="Submit()"/>
</tr></td>
</table>

作者最新文章