科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET入门随想之代言人

ASP.NET入门随想之代言人

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

近日Google发布除英文外的唯一名称--谷歌,中国用户一片哗然, 暂且不论这个谷歌是不是比胡弋更合适

作者:老燕 来源:天极开发 2007年11月6日

关键字: ASP.NET 入门 代言人 Windows

  • 评论
  • 分享微博
  • 分享邮件
本报讯 著名品牌服务器控件(Control)携手奥运冠军客户端HTML标签作为形象代言人,新形象以"极速体验"为主题,既诠释了服务器控件本身强大的信息处理能力,也表现客户端HTML标签希望用灵动和亲切来证明自己的决心与态度。

  ■ 内与外 - property与attribute

  近日Google发布除英文外的唯一名称--谷歌,中国用户一片哗然, 暂且不论这个谷歌是不是比胡弋更合适,但Google想借此阐述产品内涵,取悦中国用户之心路人皆知;今年WEB2.0引无数风投竞折腰,40亿美金撒向大陆都是钱,于是网站们如同川剧变脸,摇身一变,换成一张张博客、书签、圈圈的面庞。冷静思考,在信息过剩,特别是同质化严重的前提下,数据挖掘、用户体验成为网站关键,有人戏称三分长相(内容),七分打扮(内容聚集和用户体验)。即是如此,人机交互设计从可有可无提升到必不可少、Ajax技术变火也就不奇怪了。

  服务器端处理总是WEB应用系统的核心功能,大多数的信息处理在服务器端完成。但如果把所有功能都放在服务器端,让页面带着几百几千字节的ViewState在网络中来回穿梭,那可不是恶心,那是相当的恶心。所以我们需要客户端充当服务器端的代言人,通过执行脚本程序来分担一些系统功能,让用户更爽,让服务器更轻松。

  ASP.NET通过控件与用户完成交互,但就客户端浏览器而言,它从未听过,也不和控件打交道,它所熟悉的是HTML标签和客户端脚本程序。要让客户端充当服务器端的代言人,就必须让二者交流与沟通,即:动态添加客户端行为、动态生成客户端脚本、控件行为与客户端行为映射等。

  attribute和property是一对有趣的近义词,MSDN中有这么一句话:"在 ASP.NET 服务器控件的标记中,可以使用属性 (attribute) 来设置属性 (property) 值。"属性设置属性?头晕目眩中。简单地理解,property是类的成员,attribute是类的外观。前者是品牌自身特征,后者为代言人特征,前者可以通过后者来展示自己。反映到控件与对应HTML标签,控件状态是property,标签中对应的字符串是attribute,即浏览器所看到的服务器端控件的外形。

  ■ 宣布 - 添加客户端行为

  HTTP响应流就是一串字符流,页面生成一个HtmlTextWriter实例,专门收集控件们生成的HTML标记文本,它按控件树的次序,让控件的RenderControl方法检查自己的Visible属性,如果为真就调用控件的Render方法向实例添加标记文本,搞定后调用RenderChildren方法向下递归传递。所以在页面调用控件Render方法之时或之前,可以在动态地修改标签中的Attribute以组装成相应的标记文本。

  向控件添加客户端行为,最简单的方法是在.apsx文件中的标签直接声明对应的Attribute,或以编程方式调用控件Attributes 集合的Add方法,即向客户端浏览器宣布:我的代言人是老徐~~

<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
 // 为btnTest控件添加onmouseover和onmouseout客户端行为
 btnTest.Attributes.Add("onmouseover","MakeRed();");
 btnTest.Attributes.Add("onmouseout","RestoreColor();");
}
</script>
<html><head runat="server">
<script language="javascript">
var previousColor;
// 改变前景色
function MakeRed(){
 previousColor = window.event.srcElement.style.color;
 window.event.srcElement.style.color = "#FF0000";
}
// 恢复原前景色
function RestoreColor(){
 window.event.srcElement.style.color = previousColor;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:button id="btnTest" text="btnTest" runat="server" />
</form>
</body></html>
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章