当前位置: 首页 > news >正文

解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题

转自:http://www.cnblogs.com/dida/articles/1175672.html
 
在AJAX支持的网站中使用想使用Response.Wrie(“”); 或 Page. RegisterStartupScript (); 弹出一些提示对话框,没有效果。有如下两种解决方法:
 
(1)      System.Web.UI.ScriptManager.RegisterStartupScript来替代Page.ClientScript.RegisterStartupScript
函数原型:
System.Web.UI.ScriptManager.RegisterStartupScript(Contrl control, Type type, string  key, string  script,  bool  addScriptTags);
参数:
control // 要要注册此段javascript语句的控件ID,如下面示例的按钮ID btnUnReport
type // 一般直接用this.GetType()即可
key // 为要执行的javascirpt语句起的名字,可以随便起,类似控件的name属性
script // javascript语句
addScriptTags // 为true时,前边的script参数可以不用再写javascript标签;为false,则需自己为script参数添加<script language=’javascript’></script>标签。

注: 要多传一个Control参数,如果这个control在UpdatePanel里,则运行脚步,如果这个control不在UpdatePanel则不允许这段脚步
Eg.
System.Web.UI.ScriptManager.RegisterStartupScript(btnUnReport,  this .GetType(),  " unReport " " alert('内容');window.close(); " true );
 
(2)注册DataItem方法:
示例:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm1.aspx.cs" Inherits="WebForm1"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< asp:ScriptManager  ID ="ScriptManager1"  runat ="server" ></ asp:ScriptManager >  
    
< script  type ="text/javascript" >
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading( 
            
function(sender, e) 
         

                
var dataItem = e.get_dataItems()["<%= this.UpdatePanel1.ClientID %>"](); 
               alert(dataItem.Name); 
          }
); 
    
</ script >
    
< div >  
        
< asp:UpdatePanel  ID ="UpdatePanel1"  runat ="server" >  
            
< ContentTemplate >  
                
< asp:Button  ID ="test"  runat ="server"  Text ="test"  OnClick ="test_Click"   />  
            
</ ContentTemplate >  
        
</ asp:UpdatePanel >  
    
</ div >  

    
</ form >
</ body >
</ html >
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;

using  System.Web.Script.Serialization;

    
public  partial  class  WebForm1 : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
       
{

        }


        
protected void test_Click(object sender, EventArgs e)
        
{
            JavaScriptSerializer serializer 
= new JavaScriptSerializer();
            ScriptManager.GetCurrent(
this.Page).RegisterDataItem(this.UpdatePanel1, "var _f = function(){alert('Hello World!');}; _f;"true);

        }


    }

(3)      使用Javascript的非模态对话框弹出提示
Eg.
Page.RegisterStartupScript( " alert " " <script language='javascript'>window.showModelessDialog(\ " javascript:alert( ' 内容 ' );window.close();\ " ,\ " \ " ,\ " status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;\ " )</script> " ); 

相关文章:

  • 用于收发电子邮件的应用类
  • 在自己网站加百度搜索框这么简单
  • ubuntu下root 密码忘记的解决方法
  • 从“芯”认识内存
  • Using LINQ in ASP.NET (1)
  • 又开始了Vmware……
  • 安装完流媒体服务器WP9Server,后发现原iis默认80端口被占用:
  • 跟小段一起学Solaris(14)---FTP服务
  • LINUX网络服务 DHCP服务
  • Cisco路由器上如何防止DDoS攻击
  • 红旗6SP2编译安装kernel 2.6.30-rc3
  • 天台之约
  • Apache的维护
  • 工作组环境下hyper-v远程连接
  • FreeBSD学习笔记27-查看安装包信息
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Create React App 使用
  • Golang-长连接-状态推送
  • JavaScript设计模式之工厂模式
  • Laravel Telescope:优雅的应用调试工具
  • markdown编辑器简评
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • React Native移动开发实战-3-实现页面间的数据传递
  • Vue ES6 Jade Scss Webpack Gulp
  • Webpack 4x 之路 ( 四 )
  • 从零开始学习部署
  • - 概述 - 《设计模式(极简c++版)》
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 推荐一个React的管理后台框架
  • 用Visual Studio开发以太坊智能合约
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 正则与JS中的正则
  • python最赚钱的4个方向,你最心动的是哪个?
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ()、[]、{}、(())、[[]]命令替换
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (k8s中)docker netty OOM问题记录
  • (Oracle)SQL优化技巧(一):分页查询
  • (补)B+树一些思想
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (理论篇)httpmoudle和httphandler一览
  • .NET delegate 委托 、 Event 事件
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET多线程执行函数
  • .net下的富文本编辑器FCKeditor的配置方法
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @Transactional 竟也能解决分布式事务?
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [383] 赎金信 js