HTC基础知识_htc

HTC是HTML Component的缩写,是IE5及后续版本浏览器所支持的客户端组件。据我个人理解,HTC就是一组以DHTML为基础封装了客户端行为的脚本,每HTC以*.htc的文件存储,一个HTC是一个客户端“类”。 
对象
     document                                在给定的浏览器窗口中表现HTML文档。
     element                          返回一份主文档中连接行为的标签的参考。
     PUBLIC:ATTACH                    绑定一个函数到一个事件上,因此每次事件发生在特殊对象上时函数会被调用。
     PUBLIC:COMPONENT   以HTC指明文件的内容。
     PUBLIC:DEFAULTS       设定一份HTC的默认属性。
     PUBLIC:EVENT             定义一个HTC的事件,使之暴露于包含该HTC的文档。
     PUBLIC:METHOD        定义一个HTC的方法,使之暴露于包含该HTC的文档。
     PUBLIC:PROPERTY              定义一个HTC的属性,使之暴露于包含该HTC的文档。 
方法
     createEventObject
     创建一个事件对象,当需要传递事件附加信息给PUBLIC:EVENT元素的fire方法时使用。
事件
     oncontentready
     连接了行为的元素的内容完全被解析时发生。
     oncontentsave
     连接了一份元素行为的一个元素的内容被保存或复制前发生。
     ondetach
     从一个元素解除一份行为的连接前发生。
     ondocumentready
     当包含行为的文档完全被解析时发生。

示例
复制代码 代码如下:

<PUBLIC:COMPONENT>
<PUBLIC:PROPERTY NAME="grid"/><!--返回当前的Grid,通过该属性,可以访问当前Grid的相关信息-->

<!--和.Net中的DataColumn的定义类似-->
<PUBLIC:PROPERTY NAME="columnName"/> <!--列名-->
<PUBLIC:PROPERTY NAME="dataType"/><!--数据类型,如System.String,和SmartGridColumn上的DataType的值保持一致-->
<PUBLIC:PROPERTY NAME="allowNull"/><!--是否允许为空-->
<PUBLIC:PROPERTY NAME="scale"/>
<PUBLIC:PROPERTY NAME="precision"/><!--精度,主要用于数字型-->
<PUBLIC:PROPERTY NAME="maxLength"/><!--最大长度,主要用于文本-->
<PUBLIC:PROPERTY NAME="extendedProperties"/><!--一般用xml串,因为在存储很多信息时,解析非常方便-->

<PUBLIC:METHOD NAME="select"/><!--全选。由于参照编辑框由INPUT、IMG组成,所以需要改写(重载)select方法-->
<PUBLIC:METHOD NAME="focus"><!--置焦点。由于参照编辑框由INPUT、IMG组成,所以需要改写(重载)focus方法-->
<PUBLIC:PROPERTY NAME="input"  GET="getInput"/>
<PUBLIC:PROPERTY NAME="value"  GET="getValue" PUT="setValue"/>
<PUBLIC:METHOD NAME="cellDataCheck"/>
</PUBLIC:COMPONENT>
<script language="javascript">    
    var id = null;

    //参照一般有两个值,一个是显示的Text,一个是id。idColumn指明id的Grid列
    var idColumn = null;

    var refUrl = null;
    var refIdColumn = null;
    var refNameColumn = null;

    var extendedProp = element.extendedProperties;
    if(extendedProp!= null && typeof(extendedProp) != "undefined")
    {
        var dom = new ActiveXObject("MSXML.DOMDocument");
        dom.loadXML(extendedProp);

        idColumn = dom.documentElement.getAttribute("idColumn");

        var refInfo = dom.documentElement.firstChild;
        refIdColumn = refInfo.getAttribute("idColumn");
        refNameColumn = refInfo.getAttribute("nameColumn");
        refUrl = refInfo.getAttribute("url");
    }

    var btn = element.getElementsByTagName("IMG")[0];    
    btn.onclick = btnClick;
    function btnClick()
    {
        var ret = window.showModalDialog(refUrl,self,'scrolling:no;resizable:no;status:no;dialogWidth:550px;dialogHeight:450px;center:1');

        if(ret != null)
        {
            var el = ret.documentElement.firstChild;
            if(el != null)
            {
                input.value = el.getAttribute(refNameColumn);

                if(idColumn != null && idColumn!="")
                {
                    id = el.getAttribute(refIdColumn);
                    grid.setCellValue(grid.row,idColumn,id);
                }            
            }
        }

        //--------------------------------------------------------------
        grid.setCellValue(grid.row,"num",100); //赋值示例
        grid.setCellValue(grid.row,"price",10); //赋值示例
        //-------------------------------------------------------------
    }

    var statusText = "";    
    var input =    element.getElementsByTagName("INPUT")[0];
    input.onblur = inputOnBlur;

    function inputOnBlur()
    {
        grid.status = statusText; //可以通过grid.status来修改Grid状态条的状态。
    }

    function getInput()
    {
        return input;
    }    

    //该方法由SmartGrid在显示编辑器时调用。由于参照编辑器由INPUT、IMG等元素组成,所以需要告知SmartGrid在设置编辑器焦点时,应该让哪个元素获得焦点!
    function focus()
    {    
        input.focus();    
    }

    //该方法由SmartGrid在对编辑器全选时调用。由于参照编辑器由INPUT、IMG等元素组成,所以需要告知SmartGrid在全选编辑器的内容时,应该怎样进行全选!
    function select()
    {
        input.select();
    }

    function setValue(val)
    {
        input.value = val;

        if(idColumn != null)
        {
            var r = grid.row;
            id = grid.getCellValue(r,idColumn);
        }
    }

    function getValue()
    {

        return input.value ;
    }

    function cellDataCheck(args)
    {
        return ;    
    }

</script>

时间: 2024-09-27 19:34:46

HTC基础知识_htc的相关文章

【Xamarin开发 Android 系列 4】 Android 基础知识

原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android?   Android一词的本义指"机器人",同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件. Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备.目前尚未有统一中文

路由器基础知识之路由器的配置过程

路由器的配置对初学者来说并非易事.作为学习路由器的基础知识,本文以Cisco 2501为例介绍了路由器的一般 配置过程,供朋友们在配置路由器时参考.Cisco2501有一个以太网口(AUI).一个 Console口(RJ45).一个AUX口(RJ45)和两个同步串口,支持DTE和DCE设备,支持 EIA/TIA-232. EIA/TIA-449. V.35 .X.25和EIA-530接口.一.配置1.配置以太网端口#conft(从终端配置路由器) #inte0(指定E0口) #ipaddrABC

JavaScript基础知识及常用方法总结_javascript技巧

JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的. 一.基础知识: 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单

RESTful_基础知识

前言 本篇主要是RESTful的基础知识整理,主要是为了将要开始的Openstack架构主题做知识积累.理解好RESTful的设计思想无论是对学习Openstack架构还是Openstack Dashboard实现都是一件事半功倍的事情. RESTful REST(Representational State Transfer):是一种软件架构的设计风格,而不是一种标准.主要用于C/S架构的软件设计,也能很好的支持B/S架构,为软件设计提供了一组原则和约束条件,但这是原则和约束的条件均不具有标准

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

黑马程序员 一、java 概述与基础知识

获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路.方法.和手段通 过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完 成某种特定的任务.这种人和计算机之间交流的过程就是编程.   2.Java 语言概述,历史.特点 是 SUN(Stanford Universit

MFC 基础知识:主对话框与子对话框(一)

(仅供使用VS MFC初学者学习,高手莫见笑)在MFC中通常会使用点击一个按钮,弹出一个子对话框的基础知识,这些都是学习MFC的基础知识,也是非常重要的知识,这里我就简单的讲讲这些知识. 一. 设置主对话框 1.文件-新建项目(我设置的过程名为:EditSet)-MFC应用程序-该页面使用"基于对话框"-完成即可.2.在"资源视图"中打开Dialog对话框,删除"TODO:在此处放置对话框控件"和"确定"."退出&q

MFC 基础知识:主对话框与子对话框(二)

(仅供使用VS MFC初学者学习,高手莫见笑)接"MFC 基础知识:主对话框与子对话框(一)"的内容在"MFC 基础知识:主对话框与子对话框(一)"中Edit Control(编辑框)控件中输出内容,主要是想讲讲在创建的子对话框中如何实现一些操作:即添加OnInitDialog初始化函数的操作,这里的操作VS2012与VC++6.0略有些改动. 一. 主对话框编辑框中输出内容 1.找到主对话框XXXDlg.cpp中的OnInitDialog()初始化函数,在函数注释

基础知识__WebService

基础知识__WebService 本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/50511873 微博: http://weibo.com/u/2524456400 这是一篇关于WebService的基础知识的整理 介绍 提供一种通过web方式访问的Api. 解决两个系统/应用之间的远程调用.(跨语言,跨平台) 简单应用(原理) New –> java project –> -