首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >asp.net回调javascript

asp.net回调javascript

作者头像
阿新
发布于 2018-04-09 10:01:31
发布于 2018-04-09 10:01:31
77100
代码可运行
举报
文章被收录于专栏:c#开发者c#开发者
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System; 
using System.Collections; 
using System.IO; 
using System.Text; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.ComponentModel; 
namespace Platform 
{ 
 
 
 /// <summary> 
 /// 可以处理客户端的jscript的回调 
 /// </summary> 
 [DefaultProperty(""), 
  ToolboxData("<{0}:ScriptCallbackManager runat=server></{0}:ScriptCallbackManager>")] 
 public class ScriptCallbackManager : System.Web.UI.WebControls.WebControl 
 { 
  private ICallbackEventHandler _handler; 
  private String _functionNameAfterCallback; 
        public ScriptCallbackManager() { 
            //_handler = (ICallbackEventHandler)Page; 
        }

        /// <summary> 
        /// 回调完执行的客户端函数 
        /// </summary> 
  public string FunctionNameAfterCallback 
  { 
   get { return _functionNameAfterCallback; } 
            set { _functionNameAfterCallback = value; } 
  } 
  public ICallbackEventHandler CallbackEventHandler 
  { 
   get { return _handler; } 
            set { _handler = value; } 
  }
  /// <summary> 
  /// 将此控件呈现给指定的输出参数。 
  /// </summary> 
  /// <param name="output"> 要写出到的 HTML 编写器 </param> 
  protected override void Render(HtmlTextWriter output) 
  { 
   output.Write(this.GetCallbackEventReference()); 
  } 
  protected override void OnInit(EventArgs e){ 
   base.OnInit(e); 
   try { 
    this.HandleRequest(); 
            } 
   catch (Exception ex){ 
                object o = ex; 
   } 
  } 
  private void HandleRequest(){ 
   HttpRequest request = this.Page.Request; 
   HttpResponse reponse = this.Page.Response; 
   String sType = request["type"]; 
   if ((sType != null) && (sType == "__scriptcallback:" + this.ID)) 
   { 
    String sRequest = this.GetRequestContent(request); 
    String sResult = this.CallHandler(sRequest); 
    reponse.Clear(); 
    reponse.Expires = 0; 
    reponse.Write(sResult); 
    reponse.End(); 
   } 
  } 
  private String GetRequestContent(HttpRequest request) { 
   HttpRequest r = request; 
   String s = r.ToString(); 
   using (StreamReader reader = new StreamReader(request.InputStream)) { 
    return reader.ReadToEnd(); 
   } 
  } 
        private String CallHandler(String param) { 
            if (this.CallbackEventHandler != null) { 
                return this.CallbackEventHandler.RaiseCallbackEvent(this, param); 
            } 
            return ""; 
        } 
  /* 
  private ICallbackEventHandler GetScriptCallbackHandlerOnPage(String id) 
  { 
   return this.GetScriptCallbackHandler(this.Page, id); 
  } 
  private ICallbackEventHandler GetScriptCallbackHandler(Control control, String id) 
  { 
   if ((control is ICallbackEventHandler) && (control.ID == id)) 
   { 
    return control as ICallbackEventHandler; 
   } 
   foreach(Control child in control.Controls) 
   { 
    ICallbackEventHandler handler = GetScriptCallbackHandler(child, id); 
    if (handler != null) 
    { 
     return handler; 
    } 
   } 
   return null; 
  } 
  */ 
        private String GetCallbackEventReference() 
        { 
         StringBuilder sb = new StringBuilder(); 
   sb.Append("<script>"); 
   sb.Append("function " + this.ID + "(param, context) {"); 
   sb.Append("var xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');"); 
   sb.Append("xmlhttp.Open('POST', '" + HttpContext.Current.Request.Url.ToString() + "?type=__scriptcallback:" + this.ID + "', false);"); 
   sb.Append("xmlhttp.Send(param);"); 
   sb.Append(this.FunctionNameAfterCallback + "(xmlhttp.responseText, context);"); 
   sb.Append("}"); 
   sb.Append("</script>"); 
   return sb.ToString(); 
        } 
 } 
} 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2005-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
asp.net中窗口相关操作总结(javascript)
1.打开新窗口   这个简单:Response.Write(@    language=javasJavaScript
Java架构师必看
2020/09/30
1.2K0
发布一个日期选择控件(ASPNET2.0)
The Coolest DHTML Calendar,这是一个在GPL下发布的JS日历程序,具有极高的可配置性,包括外观样式、显示格式、显示内容等等。默认程序是只提供日期选择的,需要设置几个showtime参数才能显示时间选择。下载的程序包(zip)里面已经有详细的说明文档和例子. 这个控件的aspnet 1.1版本的代码在我的donews blog上,代码可以自由修改发布. 代码和示例下载地址:demo using System; using System.Web; using System.Web.U
张善友
2018/01/19
2.1K0
jQuery Gallery Plugin在Asp.Net中使用
jQuery Gallery Plugin在Asp.Net中使用 推荐一个简单易用的Gallery插件:jQuery Gallery Plugin 下面是在Asp.Net开发中应用 示例截图: image.png -------------------------------------------------------------------------------风骚分隔线----------------------------------------------------------------
Porschev
2018/01/16
1.3K0
jQuery Gallery Plugin在Asp.Net中使用
Asp.Net无刷新分页( jquery.pagination.js)
采用Jquery无刷新分页插件jquery.pagination.js 实现无刷新分页效果 友情提示:本示例Handler中采用StringBuilder的append方法追加HTML,小数据量可以,但是大数据或是布局常变,建议返回JSON格式的数据,性能和灵活性更好! 1.插件参数列表 image.png 2.页面内容: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default
Porschev
2018/01/16
3.3K0
Asp.Net无刷新分页( jquery.pagination.js)
Asp.Net统一前后端提示信息方案
要解决的问题 减少弹框前后端代码量 增强可维护性 前后端提示资源统一 可以实现简单的多语言提示方案 增强重用性和易用性       ... 用自定义XML汇总提示信息
Porschev
2018/01/16
1.7K0
Asp.Net统一前后端提示信息方案
Asp.Net开发等级星使用(Jquery Rating)
插件参数: rater第一个参数是AJAX提交的URL rater第二个参数 maxvalue:最大星数 curvalue:默认选择多少颗星 title:鼠标放在星上的提示 enable:可设置true or false,控件是否可用 rater的第三个参数回调函数 aspx页代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%> <!DOCTYPE html P
Porschev
2018/01/16
8050
Asp.Net开发等级星使用(Jquery Rating)
C#用于对用户输入数据进行校验的类
这个C#类包含了各种常用数据验证的函数,包含验证是否是数字,校验email格式,区分中英文截取字符串,区分中英文计算字符串长度,检测是否包含中文字符,判断是否包含特定字符等
用户7108768
2021/11/02
2.3K0
3,最简单的树(不显示图标)
-----后台 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; public partial class _Default : System.Web.UI.Page {     protected voi
py3study
2020/01/07
8030
c# asp.net 实现分页(pager)功能
分页PagerHelper辅助类 using System; using System.Web; public class PagerHelper { #region 获取分页的Html代码 /// <summary> /// 获取分页的Html代码 /// 当前页码方法内部根据Request["page"]获取 /// </summary> /// <param name="pageSize">每一页数量</param> /// <param nam
纯粹是糖
2018/03/14
2.5K0
c#  asp.net 实现分页(pager)功能
C# 实现的Javascript加密算法
不打算公开的,不过转念一想,反正又没人看,就发出来吧。 这是使用C#来实现的JS加密的,被加密的JS文件,代码需要写的规范,不能少了分号(;)等js中可能会被忽略的符号。 下面是完整代码,自己看吧
徐大嘴
2019/03/21
1.1K0
asp.net中显示DataGrid控件列序号的几种方法
在aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下:
Java架构师必看
2021/03/22
1.9K0
在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的ActiveServerPages(ASP运维
Java架构师必看
2020/10/15
3K0
Asp.Net就业课之案例实践第二次课
张哥编程
2024/12/13
660
Asp.Net就业课之案例实践第二次课
CodeSmith系列(二)——使用CodeSmith生成ASP.NET后台代码
因为表单的后台代码都差不多,所以采用了CodeSmith生成。由于表单的控制是基于XML的,所以可以根据XML自定义生成。由于没时间,就不多写了,具体模板代码见最后。 在这里,先选择变量。如下: X
雪雁-心莱科技
2018/12/27
3.2K0
分享一篇关于C#大文件上传的整个过程
1、创建一个web mvc项目,在创建一个webservice文件夹,在文件夹下创建一个SaveFileWebForm.axpx接口,
用户7053485
2020/03/12
2.9K0
ASP.NET 使用Ajax
之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的ScriptManager。
全栈程序员站长
2022/09/06
3K0
ASP.NET 使用Ajax
ASP.Net Web Page深入探讨
这篇文章经典,看过之后大受启发。值得一看!看来ASP.NET跟JSP其实是一样的,本质上没区别,ASP.NET能做到的JSP一样可以做到,反之亦然。只不过ASP.NET的框架看起来先进一点,不过JSP也在发展,似乎也出现了类似ASP.NET的框架。 一、服务器脚本基础介绍 首先,我们先复习一下Web服务器页面的基本执行方式: 1、 客户端通过在浏览器的地址栏敲入地址来发送请求到服务器端 2、 服务器接收到请求之后,发给相应的服务器端页面(也就是脚本)来执行,脚本产生客户端的响应,发送回客户端 3、 客户
用户1075292
2018/01/23
2.4K0
ASP.NET AJAX UpdatePanel 控件实现剖析
使用ASP.NET AJAX框架我们可以搭建快速响应、具有丰富的用户体验的AJAX Web应用程序,而该框架的UpdatePanel控件则提供了一种非常简单的方式来实现Web页面的局部更新,我们不需要在每次回发的时候都加载整个页面。 那这个控件是如何实现这种局部刷新的哪,透过其实现机制我们可以更清楚其优缺点,便于我们确定其使用场合。本文将重点阐述ASP.NET AJAX控件UpdatePanel的实现机制。 1. ASP.NET AJAX 简介 ASP.NET AJAX是微软在ASP.NET 2.0之上对A
葡萄城控件
2018/01/10
7.2K0
ASP.NET AJAX UpdatePanel 控件实现剖析
MSDN官方的ASP.Net异步页面的经典示例代码
示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.IO; using System.Text; using System.Text.RegularExpressions; public partial class AsyncPag
菩提树下的杨过
2018/01/24
1.1K0
浅谈ASP.NET的Postback
说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角度,撇开Web Page 的生命周期浅谈Postback。 我们知道,无论是ASP.NET1.x,2.0,甚至是以后的版本,ASP.NET最终Render到Client端通过浏览器浏览的都是一样:一个单纯的HTML。Client通过Submit Form的方式将填入Form的数据提交给Server进行处理。我们现在来看看ASP.NET整个Postba
蒋金楠
2018/01/16
1.2K0
浅谈ASP.NET的Postback
相关推荐
asp.net中窗口相关操作总结(javascript)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档