http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4136|回复: 0

[Asp.Net] ScriptManager和ClientScriptManager

[复制链接]
发表于 2012-7-10 10:53:06 | 显示全部楼层 |阅读模式
1.先说一下ScriptManager控件吧,用过Ajax的都知道他是什么了就不用我多说了吧呵呵!!!
[C#] 纯文本查看 复制代码
ClientScriptManager csm = this.ClientScript;
csm.RegisterStartupScript(this.GetType(), "sufei", "你好");

这两句可以在当前控件的下面输出一个你好,呵呵,我建议大家以后都有这种方式做,不要再用Response.Write()
它只能用在方法里,"你好"的地方 也可以写成Script代码,不用加头但是呢要在后面加一个对数true
看这个吧
[C#] 纯文本查看 复制代码
csm.RegisterStartupScript(this.GetType(), "sufei", "alert('苏飞你好啊fdfd')", true);
csm.RegisterStartupScript(this.GetType(), "sufei", " document.write ('你好可以弹出的啊!!!')", true);

下面是Aspx源里的代码,大家复制就可以了
[HTML] 纯文本查看 复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ScriptManager.aspx.cs" Inherits="ClientScriptManager_ScriptManager" %>

<!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>苏飞—ScriptManager</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <!-- AllowCustomErrorsRedirect="false"表示在发生错误时不按Web。Config里家配制的转到相应的错误界面当然True就是是了,也是默认的-->
        <asp:ScriptManager ID="ScriptManager1" runat="server" AllowCustomErrorsRedirect="false">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode ="Conditional">
        <ContentTemplate>
        <%=DateTime .Now %>
          <asp:Button ID="Button1" runat="server" Text="第一个时间"  />
        </ContentTemplate>
        </asp:UpdatePanel>
        <hr />
        <%--在这里是不会弹出对话框的,因为只有UpdatePanel刷新时才会取得值--%>
          <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode ="Conditional" >
        <ContentTemplate>
        <%=DateTime .Now %>
           <asp:Button ID="Button2" runat="server" Text="第二个时间" 
                 />
        </ContentTemplate>
        </asp:UpdatePanel>
        <hr/>
        <asp:Button ID="Button3" runat="server" Text="刷新所有" />
    </div>
    </form>
</body>
</html>

CS下的代码
[C#] 纯文本查看 复制代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class ClientScriptManager_ScriptManager : System.Web.UI.Page
{
    /// <summary>
    /// 苏飞 2009 03 11
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    //第一个UpdatePanel
    protected void Button1_Click(object sender, EventArgs e)
    {
        //要注册代码的控件是UpdatePanel1
        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "sufei1", "alert(111)", true);
        //要注册代码的控件是UpdatePanel2
        ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "sufei2", "alert(222)", true);
        //要注册代码的控件是Page下面的代码 不管UpdatePanel会不会刷新都会输出
        //ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "sufei3", "alert(111)", true);
    }

    //第二个UpdatePanel
    protected void Button2_Click(object sender, EventArgs e)
    {
        //要注册代码的控件是UpdatePanel1
        ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "sufei3", "alert(111)", true);
        //要注册代码的控件是UpdatePanel2
        ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "sufei4", "alert(222)", true);
        //throw new Exception("呵呵");
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        throw new Exception("呵呵");
    }
}


其实怎么说呢,看到这里ClientScriptManager和ScriptManager基本上没有什么区别
但看只是前者是一个控件
ClientScriptManager给出一点代码大家看一下有什么不同吧
[C#] 纯文本查看 复制代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class RequiredFieldValidator_Default : System.Web.UI.Page
{
    /// <summary>
    /// 苏飞 2009 03 11
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>

    /*禁止使用Response.Write()方法,因为它会破坏页面的标准(会出现在页面的上方)
     * 破坏了Asp.Net的模型,所有建议大家都不要使用
     * 我们有强大的Page,Control模型就没有必要再用Response.Write()这样的方法,
     * 如果你是一个好的程序员一个负责的程序员您就不要用这个方法
     * 用下面我写的方法来完成 ClientScriptManager csm = this.ClientScript;只能在方法里不能写在类的上方
     * //Response.Write("<script>alert('"+TextBox1 .Text .ToString ().Trim ()+"')</script>");
     */
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //得到一个ClientScriptManager对象
            ClientScriptManager csm = this.ClientScript;
            csm.RegisterOnSubmitStatement(this.GetType(), "sufei1", "return window.confirm('你真的要提交界面吗');");
        }
    }

    //添加数组
    protected void Button1_Click(object sender, EventArgs e)
    {
        //得到一个ClientScriptManager对象
        ClientScriptManager csm = this.ClientScript;
        //这个方法可以在前台注册一个var aa =  new Array(4ghg,2,3);数组
        csm.RegisterArrayDeclaration("aa", "4ghg,2,3");
    }

    //输出一个提示信息
    protected void Button2_Click(object sender, EventArgs e)
    {
        //得到一个ClientScriptManager对象
        ClientScriptManager csm = this.ClientScript;
        // 输出一个提示信息啊后一个参数的意思是是否自动添加JS头
        csm.RegisterClientScriptBlock(this.GetType(), "提示信息", "alert('苏飞你好啊')", true);
        //出现的位置不同上面的是在页面上方显示,而这个是在当前控件的下面显示
        csm.RegisterStartupScript(this.GetType(), "sufei", "alert('苏飞你好啊fdfd')", true);
        csm.RegisterStartupScript(this.GetType(), "sufei", " document.write ('fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd')", true);
    }

    //导入一个文件
    protected void Button3_Click(object sender, EventArgs e)
    {
        //得到一个ClientScriptManager对象
        ClientScriptManager csm = this.ClientScript;
        csm.RegisterClientScriptInclude("sufei", "../App_Themes/personnel_Css/forum.css");
    }

    //为一个控件添加一个属性
    protected void Button4_Click(object sender, EventArgs e)
    {
        //得到一个ClientScriptManager对象
        ClientScriptManager csm = this.ClientScript;
        csm.RegisterExpandoAttribute(this.Button4.ClientID, "sufei", "苏飞");
        //同时注册一个隐藏的值
        //csm.RegisterHiddenField("kdfjkdfjkdfjlsjfl", "fdklfjldfldkf");

    }
}



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 08:15

© 2014-2021

快速回复 返回顶部 返回列表