网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 Asp.net回调技术Callback学习笔记
范文
    .aspx:
    001 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    002
    003 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    004 <html xmlns="http://www.w3.org/1999/xhtml">
    005 <head runat="server">
    006 <title>无标题页</title>
    007
    008 <script type="text/javascript">
    009
    010 //向服务器传递参数
    011 function DoSearch(){
    012 var firstName=document.getElementById("TextBox1").value;
    013 CallServer(firstName,"");
    014 }
    015
    016 //得到服务器的数据
    017 function ReceiveServerData(txtUserInfo){
    018 Results.innerHTML=txtUserInfo;
    019 }
    020
    021 //设置每1秒执行一次
    022 setInterval("DoSearch()",1000);
    023 </script>
    024
    025 </head>
    026 <body>
    027 <form id="form1" runat="server">
    028 <div>
    029 姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    030 <br />
    031 <span id="Results"></span>
    032 </div>
    033 </form>
    034 </body>
    035 </html>
    036 [/code]
    037 .aspx.cs
    038 [code]
    039 using System;
    040 using System.Collections;
    041 using System.Configuration;
    042 using System.Data;
    043 using System.Web;
    044 using System.Web.Security;
    045 using System.Web.UI;
    046 using System.Web.UI.HtmlControls;
    047 using System.Web.UI.WebControls;
    048 using System.Web.UI.WebControls.WebParts;
    049 using System.Data.SqlClient;
    050
    051 public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
    052 {
    053 protected string txtUserInfo;
    054
    055
    056 protected void Page_Load(object sender, EventArgs e)
    057 {
    058 //获取一个对客户端函数的引用
    059 string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
    060 //动态注册回调函数
    061 string callbackScript = "function CallServer(arg,context)" + "{" + cbReference + "};";
    062 //引发callbackScript
    063 Page.ClientScript.RegisterStartupScript(this.GetType(), "CallServer", callbackScript, true);
    064 }
    065
    066 //引发Callback事件处理
    067 public void RaiseCallbackEvent(string txtFirstName)
    068 {
    069 if (txtFirstName != null)
    070 {
    071 String connString = System.Configuration.ConfigurationManager.ConnectionStrings["sqlserver2008"].ToString();
    072
    073 SqlConnection conn = new SqlConnection(connString);
    074
    075 conn.Open();
    076
    077 SqlCommand comm = new SqlCommand("select * from zzx where [name]=@name", conn);
    078
    079 comm.Parameters.Add("@name", SqlDbType.VarChar).Value = txtFirstName;
    080
    081 SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
    082 if (reader.Read())
    083 {
    084 txtUserInfo = "员工编号:" + reader["id"].ToString() + "<br>";
    085 txtUserInfo += "员工姓名:" + reader["name"].ToString() + "<br>";
    086 txtUserInfo += "地址:" + reader["address"].ToString() + "<br>";
    087 txtUserInfo += "服务器查询时间:" + DateTime.Now.ToString();
    088 }
    089 else
    090 {
    091 if (string.IsNullOrEmpty(txtFirstName))
    092 {
    093 txtUserInfo = "请输入姓名";
    094 }
    095 else
    096 {
    097 txtUserInfo = "查无此人";
    098 }
    099 }
    100
    101 comm.Dispose();
    102 reader.Dispose();
    103 conn.Dispose();
    104 }
    105 }
    106
    107 //得到回调的结果,返回给客户端
    108 public string GetCallbackResult()
    109 {
    110 return txtUserInfo;
    111 }
    112
    113
    114 }
    简化版(偷懒一下):
    01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    02
    03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    04 <html xmlns="http://www.w3.org/1999/xhtml">
    05 <head runat="server">
    06 <title>无标题页</title>
    07
    08 <script type="text/javascript">
    09 function OnCallBack(txtUserInfo,context){
    10 Results.innerHTML=txtUserInfo;
    11 }
    12 </script>
    13
    14 </head>
    15 <body>
    16 <form id="form1" runat="server">
    17 <div>
    18 姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    19 <input id="Button2" type="button" value="button"
    20 onclick="<%=Page.ClientScript.GetCallbackEventReference(this, "document.getElementById('TextBox1').value", "OnCallBack",null)%>" />
    21 <br />
    22 <span id="Results"></span>
    23 </div>
    24 </form>
    25 </body>
    26 </html>
    27 .aspx.cs
    28
    29 using System;
    30 using System.Collections;
    31 using System.Configuration;
    32 using System.Data;
    33 using System.Web;
    34 using System.Web.Security;
    35 using System.Web.UI;
    36 using System.Web.UI.HtmlControls;
    37 using System.Web.UI.WebControls;
    38 using System.Web.UI.WebControls.WebParts;
    39 using System.Data.SqlClient;
    40 using System.Text;
    41 public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
    42 {
    43 protected StringBuilder txtUserInfo;
    44
    45 protected void Page_Load(object sender, EventArgs e)
    46 {
    47
    48 }
    49
    50 public string GetCallbackResult()
    51 {
    52 return txtUserInfo.ToString();
    53 }
    54
    55 public void RaiseCallbackEvent(string txtFirstName)
    56 {
    57 txtUserInfo = new StringBuilder();
    58 String connString = ConfigurationManager.ConnectionStrings["sqlserver2008"].ToString();
    59 SqlConnection conn = new SqlConnection(connString);
    60 conn.Open();
    61 SqlCommand comm = new SqlCommand("select * from zzx where [name]=@name", conn);
    62 comm.Parameters.Add("@name", SqlDbType.VarChar).Value = txtFirstName;
    63 SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
    64 if (reader.Read())
    65 {
    66 txtUserInfo.Append("员工编号:" + reader["id"].ToString() + "<br>");
    67 txtUserInfo.Append("员工姓名:" + reader["name"].ToString() + "<br>");
    68 txtUserInfo.Append("地址:" + reader["address"].ToString() + "<br>");
    69 txtUserInfo.Append("查询时间:" + DateTime.Now.ToString());
    70 }
    71 else
    72 {
    73 if (txtFirstName == string.Empty)
    74 {
    75 txtUserInfo.Append("请输入姓名");
    76 }
    77 else
    78 {
    79 txtUserInfo.Append("查无此人");
    80 }
    81 reader.Dispose();
    82 comm.Dispose();
    83 conn.Dispose();
    84 }
    85 }
    86 }
    示例3:
    01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
    02
    03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    04
    05 <html xmlns="http://www.w3.org/1999/xhtml">
    06 <head runat="server">
    07 <title>无标题页</title>
    08 <script type="text/javascript">
    09 //客户端执行的方法
    10 //下面的方法是接收并处理服务器方法返回的结果
    11 function Success(args,context){
    12 message.innerHTML=args;
    13 }
    14
    15 //下面的方式是当接收服务器方法处理的结果发生异常时调用的方法
    16 function Error(){
    17 message.innerHTML="发生了异常!";
    18 }
    19 </script>
    20 </head>
    21 <body>
    22 <form id="form1" runat="server">
    23 <div>
    24 用户名:<input type="text" id="txtUserName" onblur="CallServerMethod(txtUserName.value,null)" />
    25 <span id="message"></span>
    26 <br />
    27 密码:<input type="password" size="10" maxlength="20" id="txtPwd" />
    28 </div>
    29 </form>
    30 </body>
    31 </html>
    32 [code]
    33 public partial class Default3 : System.Web.UI.Page,ICallbackEventHandler //实现ICallbackEventHandler接口
    34 {
    35
    36 String result = String.Empty;
    37
    38 protected void Page_Load(object sender, EventArgs e)
    39 {
    40 //获取当前页的ClientScriptManager的引用
    41 ClientScriptManager csm = Page.ClientScript;
    42 /*获取回调的引用.会在客户端生成WebForm_DoCallback方法,
    43 * 调用它来达到异步调用.这个方法是微软写的方法,会被发送
    44 到客户端*/
    45 /*注意这里的"Success"和Error两个字符串分别是客户端代码中
    46 *定义的两个javascript函数*/
    47 //下面的方法最后一个参数的意义:true表示执行异步回调,false标志执行同步回调
    48 String reference = csm.GetCallbackEventReference(this, "args", "Success", "", "Error", true);
    49 String callbackScript = "function CallServerMethod(args,context){\n"+
    50 reference+";\n }";
    51 //向当前页面注册javascript脚本代码
    52 csm.RegisterClientScriptBlock(this.GetType(), "CallServerMethod",callbackScript,true);
    53 }
    54
    55 #region ICallbackEventHandler 成员
    56
    57 /// <summary>
    58 /// 返回回调方法执行结果的方法
    59 /// </summary>
    60 public string GetCallbackResult()
    61 {
    62 return result;
    63 }
    64
    65 /// <summary>
    66 /// 在服务器端运行回调方法
    67 /// </summary>
    68 public void RaiseCallbackEvent(string eventArgument)
    69 {
    70 if (eventArgument.ToLower().IndexOf("admin")!=-1)
    71 {
    72 result =eventArgument+ "不能作为用户注册.";
    73 }
    74 else
    75 {
    76 result = eventArgument + "可以注册.";
    77 }
    78 }
    79
    80 #endregion
    81 }
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 0:39:32