asp.net 彈出對(duì)話框返回多個(gè)值
圖中,姓名有英文和中文之分。當(dāng)用戶單擊對(duì)話框中的選擇按鈕時(shí),就可以返回給父對(duì)話框了。
下面說(shuō)代碼了:
這里共包含3個(gè)頁(yè)面
結(jié)構(gòu)如下圖:
其中Default.aspx的代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>彈出選擇窗口</title>
<script language="javascript" type="text/javascript"><!--
function ShowDialog(ch,en,src)
{
var array=new Array();
array[0]=document.getElementById(ch);
array[1]=document.getElementById(en);
showModalDialog(src,array,"resizable:yes;");//src 為彈出頁(yè)面,array 傳過(guò)去的參數(shù)。
}
// --></script>
</head>
<body>
<form id="form1" runat="server">
<table border="1px">
<tr>
<td> </td>
<td style="text-align:center;" style="text-align:center;">中文</td>
<td style="text-align:center;" style="text-align:center;">英文</td>
<td> </td>
</tr>
<tr>
<td>姓名:</td>
<td><asp:TextBox ID="chTxtName" runat="server"></asp:TextBox></td>
<td><asp:TextBox ID="enTxtName" runat="server"></asp:TextBox></td>
<td><input type="button" id="btnChoiceName" value="選擇" onclick="ShowDialog('chTxtName','enTxtName','Frame.aspx');" /></td>
</tr>
</table>
</form>
</body>
</html>
其中javascript 彈出modaldialog,并且傳過(guò)去是一個(gè)數(shù)組,數(shù)組中包含對(duì)象。這樣就實(shí)現(xiàn)了,同時(shí)傳多個(gè)值了。
然后我使用了框架,使用了框架才能解決彈出的頁(yè)面GridView.aspx無(wú)法傳值和緩存的問(wèn)題了。
下面看Frame.aspx的代碼,也很簡(jiǎn)單,無(wú)后臺(tái)代碼,只是一個(gè)iframe
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>框架</title>
</head>
<body>
<form id="form1" runat="server">
<iframe id="gridview" src="GridView.aspx" src="GridView.aspx" style="position:relative;width:100%;" scrolling="no" frameborder="0" onload="document.getElementById('gridview').style.height=(gridview.document.body.scrollHeight+20)+'px'"></iframe>
</form>
</body>
</html>
這個(gè)iframe是自適應(yīng)大小的。通過(guò)onload事件實(shí)現(xiàn)的。
好了,看GridView.aspx頁(yè)面吧。
其代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView</title>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td>
<asp:TextBox ID="txtChName" runat="server"></asp:TextBox></td>
<td>
<asp:TextBox ID="txtEnName" runat="server"></asp:TextBox></td>
<td style="width: 164px">
<asp:Button ID="btnNew" runat="server" Text="新建" OnClick="btnNew_Click" /></td>
</tr>
<tr>
<td colspan="3">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting" Width="359px" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" OnSelectedIndexChanging="GridView1_SelectedIndexChanging">
<Columns>
<asp:BoundField DataField="chName" HeaderText="中文" />
<asp:BoundField DataField="enName" HeaderText="英文" />
<asp:CommandField ShowEditButton="True" >
<ControlStyle Width="100px" />
</asp:CommandField>
<asp:CommandField ShowSelectButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
<EmptyDataTemplate>
無(wú)數(shù)據(jù)
</EmptyDataTemplate>
<FooterStyle BackColor="Tan" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
</td>
</tr>
</table>
</form>
</body>
</html>
在這個(gè)頁(yè)面里可以新建、插入、刪除和更新。單擊選擇時(shí)就可以返回了,當(dāng)單擊選擇時(shí)觸發(fā)下面的事件:
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string chName = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text;
string enName = GridView1.Rows[e.NewSelectedIndex].Cells[1].Text;
Response.Write("<:script language=\"javascript\">
window.dialogArguments[0].value='" + chName + "';window.dialogArguments[1].value='" + enName + "';window.close();<script>");
}
上面的代碼就是返回的重點(diǎn);window.dialogArguments實(shí)際上就是我們剛剛傳過(guò)來(lái)的array數(shù)組。所以它有2個(gè)對(duì)象,這2個(gè)對(duì)象就是我們要賦值的對(duì)象。通過(guò)這一句就可以達(dá)到我們的目的了。
提供原代碼下載:其中包括數(shù)據(jù)庫(kù)。
- .NET中彈出對(duì)話框的方法匯總
- asp.net GridView 刪除時(shí)彈出確認(rèn)對(duì)話框(包括內(nèi)容提示)
- 兩種WEB下的模態(tài)對(duì)話框 (asp.net或js的分別實(shí)現(xiàn))
- ASP.NET AJAX時(shí)用alert彈出對(duì)話框
- Asp.net 彈出對(duì)話框基類(輸出alet警告框)
- asp.net下模態(tài)對(duì)話框關(guān)閉之后繼續(xù)執(zhí)行服務(wù)器端代碼的問(wèn)題
- ASP.NET中彈出消息框的幾種常見(jiàn)方法
- .net 彈出消息框后導(dǎo)致頁(yè)面樣式變亂解決方法
- 基于.Net實(shí)現(xiàn)前端對(duì)話框和消息框
相關(guān)文章
如何在不同.net版本實(shí)現(xiàn)單點(diǎn)登錄
經(jīng)過(guò)研究,重寫(xiě)實(shí)現(xiàn)了一個(gè)可以在不同.net版本中實(shí)現(xiàn)單點(diǎn)登錄的簡(jiǎn)單方法?,F(xiàn)在和大家分享一下,不足之處還望見(jiàn)諒2013-07-07Asp.Net使用Bulk實(shí)現(xiàn)批量插入數(shù)據(jù)
這篇文章主要介紹了Asp.Net使用Bulk實(shí)現(xiàn)批量插入數(shù)據(jù)的方法,對(duì)于進(jìn)行asp.net數(shù)據(jù)庫(kù)程序設(shè)計(jì)非常有借鑒價(jià)值,需要的朋友可以參考下2014-09-09asp.net服務(wù)器端指令include的使用及優(yōu)勢(shì)介紹
將指定文件的內(nèi)容插入 ASP.NET 文件中,包括網(wǎng)頁(yè)(.aspx 文件)、用戶控件文件(.ascx 文件)和 Global.asax 文件2013-04-04Asp.net開(kāi)發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了Asp.net開(kāi)發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法,實(shí)現(xiàn)思路分為前后臺(tái)代碼和效果展示,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10完美解決Could not load file or assembly AjaxPro.2 or one of its
Could not load file or assembly AjaxPro.2,經(jīng)排查原來(lái)是mcafee限制了2007-08-08ASP.NET Core中使用LazyCache的全過(guò)程
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中使用LazyCache的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03vs2012創(chuàng)建的ado.net模型無(wú)法實(shí)例化的解決方案
本文給大家分享的是升級(jí)vs2012后,發(fā)現(xiàn)創(chuàng)建數(shù)據(jù)模型無(wú)法實(shí)例化使用,嘗試了很多種方法,最后在度娘的幫助下,才解決了這個(gè)問(wèn)題,這里記錄下來(lái),分享給大家。2015-03-03ASP.NET MVC SSO單點(diǎn)登錄設(shè)計(jì)與實(shí)現(xiàn)代碼
本篇文章主要介紹了ASP.NET MVC SSO單點(diǎn)登錄設(shè)計(jì)與實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01一個(gè)簡(jiǎn)單的ASP.NET驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單的ASP.NET驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06asp.net 圖片的讀寫(xiě)入庫(kù)實(shí)現(xiàn)代碼
asp.net對(duì)圖片的讀寫(xiě),實(shí)現(xiàn)將圖片保存到數(shù)據(jù)庫(kù)中,然后再讀取顯示的實(shí)現(xiàn)代碼。2009-11-11