ASP.NET常用前后台调用、后台执行js、弹出模态窗口
程序员文章站
2023-12-23 15:48:10
◆Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" Cod...
◆Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <script language="javascript" type="text/javascript"> /* c# 常用前后台互相调用方法,示例程序 整理人:潘晓宇 20090814 */ //普通无参js函数 function AlertFunction() { alert("通过OnClientClick方法调用普通无参js函数成功!"); } //普通有参js函数 function TestWithPar(msg) { var t = "成功!"; alert(msg+t); } //通过前台JS函数读取Session function GetCSSessionValue() { var mySessionValue = '<%=Session["MySession"]%>'; alert(mySessionValue); } //被后台函数调用的JS函数 function InvokeByCSMethod( msg ) { alert(msg); } //JS函数调用后台函数 function InvokeCSMethod(aa,bb) { //var a = '<%=InvokeByJS("这是通过前台JS函数调用后台CS中函数返回的结果!")%>'; var a = '<%=InvokeByJS("' + aa + '","' + bb + '")%>'; alert(a); } //取得CS中的变量 值 function GetCSVarValue() { var vv ='<%=strVar%>'; alert(vv); } //判断Confirm对话框点击了那个按钮 function ConfirmCaseOperate() { var retVal = confirm("确认吗?") if (retVal) { alert("点击了确认按钮"); } else { alert("点击了取消按钮"); } } </script> <form id="form1" runat="server"> <p> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="普通提示信息" /><br /> <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Confirm对话框" /><br /> <asp:Button ID="Button11" runat="server" Text="Confirm对话框接收不同的操作" OnClientClick="return ConfirmCaseOperate();" /><br /> <br /> <asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="通过OnClientClick方法调用普通无参js函数" OnClientClick="return AlertFunction();" /> <br/> <asp:Button ID="Button3" runat="server" Text="通过OnClientClick方法调用普通有参js函数" OnClientClick="TestWithPar('通过OnClientClick方法调用普通有参js函数');" /><br /> <br /> <asp:Button ID="Button7" runat="server" OnClick="Button7_Click" Text="后台调用前台JS函数" /><br /> <asp:Button ID="Button8" runat="server" Text="前台JS函数调用CS中普通函数" OnClick="Button8_Click" OnClientClick="returnInvokeCSMethod();" /><br /> <br /> <asp:Button ID="Button6" runat="server" OnClick="Button6_Click" Text="后台设定Session" /><asp:Button ID="Button5" runat="server" OnClick="Button5_Click" Text="前台JS函数读取Session" OnClientClick="return GetCSSessionValue();" /><br /> <asp:Button ID="Button9" runat="server" OnClick="Button9_Click" Text="为后台变量付值" /> <asp:Button ID="Button10" runat="server" Text="JS函数取得后台变量的值" OnClientClick="return GetCSVarValue();" /><br /> <br /> <br /> <br /> <br /> <br /> <br /> </p> </form> </body> </html>
◆Default.aspx
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { public string strVar = string.Empty; protected void Page_Load(object sender, EventArgs e) { Button2.Attributes.Add("onclick", "return confirm('确认进行吗?\\n点击【确定】按钮后,执行后台对应方法!\\n点击【取消】按钮后,不执行任何方法!')"); } private void MsgAlert(string msg) { ClientScriptManager cs = Page.ClientScript; StringBuilder sbScript = new StringBuilder(); sbScript.Append("<script language='JavaScript' type='text/javascript'>\n"); sbScript.Append("<!--\n"); sbScript.Append("alert('" + msg + "');"); sbScript.Append("//-->\n"); sbScript.Append("</script>\n"); cs.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), sbScript.ToString(), false); } protected void Button1_Click(object sender, EventArgs e) { MsgAlert("这是普通弹出提示信息!"); } protected void Button2_Click(object sender, EventArgs e) { Response.Write("执行了按钮对应的事件方法"); } protected void Button4_Click(object sender, EventArgs e) { } protected void Button6_Click(object sender, EventArgs e) { Session["MySession"] = "我是Session"; } protected void Button5_Click(object sender, EventArgs e) { } protected void Button7_Click(object sender, EventArgs e) { ClientScriptManager cs = Page.ClientScript; cs.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script>InvokeByCSMethod('我是被后台函数调用的JS函数 ^_^...');</script>", false); } /// <summary> /// 被前台JS函数调用的函数 /// </summary> /// <param name="strValue"></param> /// <returns></returns> public string InvokeByJS(string strValue,string strValue2) { return (strValue + strValue2); } protected void Button8_Click(object sender, EventArgs e) { } protected void Button9_Click(object sender, EventArgs e) { strVar = "后台变量值1234OK"; } public int RunConfirmOper() { try { //SqlConnection conn = new SqlConnection("Data Source=192.168.0.20;Persist Security Info=True;Initial Catalog=VBADB;User ID=sa;Password=sa"); //conn.Open(); //string strSQL = "insert into T1( name, address) values ('aaaaa','bbbbbbbbb')"; //SqlCommand cmd = new SqlCommand(strSQL, conn); //cmd.ExecuteNonQuery(); //conn.Close(); Response.Write("执行后台确认后的方法"); return 1; } catch { return 0; } } public int RunCancelOper() { try { //SqlConnection conn = new SqlConnection("Data Source=192.168.0.20;Persist Security Info=True;Initial Catalog=VBADB;User ID=sa;Password=sa"); //conn.Open(); //string strSQL = "delete T1"; //SqlCommand cmd = new SqlCommand(strSQL, conn); //cmd.ExecuteNonQuery(); //conn.Close(); Response.Write("执行后台取消后的方法"); return 1; } catch { return 0; } } }
★Tanchu.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Tanchu.aspx.cs" Inherits="Basic_Tanchu" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> <script language="javascript" type="text/javascript"> /* 弹出模态窗体,并向新窗体付值 整理人:潘晓宇 2009-08-15 */ function showQueryWindow() { var par1Value = document.getElementById("TextBox1").value; var par2Value = document.getElementById("TextBox2").value; var parValueAll = par1Value +"-"+par2Value; //var getReturnValue 为模态窗体返回值(模态窗体通过window.returnValue=xxx的方式传送返回值) var getReturnValue = window.showModalDialog('TanchuDetail.aspx?par='+parValueAll,'','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left=180,top=60,width=500,height=400'); //var getReturnValue = window.showModalDialog('TanchuDetail.aspx'); //普通传出新模态窗口 if(getReturnValue != null) { var getReturnValuePar = getReturnValue.split(";"); document.getElementById("TextBox1").value = getReturnValuePar[0]; document.getElementById("TextBox2").value = getReturnValuePar[1]; } } </script> </head> <body> <form id="form1" runat="server"> <p> 弹出画面,在弹出画面中选择信息后附到原始画面中<br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="js弹出" OnClientClick="showQueryWindow();" /> <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="后台弹出" /></p> </form> </body> </html>
★Tanchu.aspx.cs
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Basic_Tanchu : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button2_Click(object sender, EventArgs e) { string str1 = TextBox1.Text.Trim(); string str2 = TextBox2.Text.Trim(); string strValueAll = str1 +"-"+ str2; string strSql = @"<script language='javascript' type='text/javascript'>" + @"var getReturnValue = window.showModalDialog('TanchuDetail.aspx?par=" + strValueAll + "');" + @"if(getReturnValue != null){" + @"var getReturnValuePar = getReturnValue.split(';');" + @"document.getElementById('TextBox1').value = getReturnValuePar[0];" + @"document.getElementById('TextBox2').value = getReturnValuePar[1];}" + @"</script>"; RegisterStartupScript("111", strSql); } }
◇TanchuDetail.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TanchuDetail.aspx.cs" Inherits="Basic_TanchuDetail" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml" > <head runat="server"> <title>被弹出的网页</title> <base target="_self" /> <script language="javascript" type="text/javascript"> function backParentWindow() { var txt1 = document.getElementById("txt1").value; var txt2 = document.getElementById("txt2").value; window.returnValue = txt1 + ';'+ txt2; window.close(); } </script> </head> <body> <form id="form1" runat="server"> <p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; height: 100%; background-color:Green; vertical-align:top;"> <tr> <td style="text-align: left;" colspan="3" rowspan="3"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <asp:TextBox ID="txt1" runat="server"></asp:TextBox> <br /> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> <asp:TextBox ID="txt2" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" BorderColor="#FFC0C0" Text="确定" OnClientClick="backParentWindow();" /></td> </tr> <tr> </tr> <tr> </tr> </table> </p> </form> </body> </html>
◇TanchuDetail.aspx.cs
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Basic_TanchuDetail : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string parVar = Convert.ToString(Request.QueryString["par"]); string[] t = parVar.Split('-'); this.txt1.Text = t[0]; this.txt2.Text = t[1]; } }