9.事件


  Supcan FreeForm的OnEvent( id, Event, p1, p2, p3, p4 )事件含义及参数分别如下:
分组Event含义p1p2p3p4
输入 EditChanged 某输入框内容已修改 id      
备注:包括Checkbox、RadioButton
文件上传控件的上传文件有变动 id      
备注:通常在关闭对话框后
EditKeydown 输入框的键盘动作 id 键的ASCII码,例如回车是13、空格是32 见备注2  
备注1:EditKeydown 和 EditChar 事件均为在输入框中的键盘事件,EditKeydown 能捕获几乎所有键盘动作,包括非字符的回车、Tab等;而 EditChar 事件则以输入的字符为主,包括中文;
备注2:p3的含义为: 1-Ctrl键也按下了; 2-Shift键也按下了; 3-二者一起按下了
备注3:您可以执行全局函数 CancelEvent( ) 去阻止继续执行,就如事件没有发生过那样,但不同的ASCII码,您需要在这两个事件中挑选一个执行CancelEvent( ),具体请在演示页“12.事件”中去测试
EditChar 输入框的键盘字符 id 字符的ASCII码    
备注:EditKeydown 和 EditChar 事件均为在输入框中的键盘事件,EditKeydown 能捕获几乎所有键盘动作,包括非字符的回车、Tab等;而 EditChar 事件则以输入的字符为主,包括中文;
LooseFocus 某输入框已失去焦点 id 下一个焦点的id
(仅和键盘动作有关)
   
BeforeDropdown 某输入框的下拉 List 或下拉 Treelist 正准备下拉 id      
备注:可执行全局函数CalcelEvent( )阻止继续执行, 但仅对下拉Treelist有效, 对下拉List无效
DropdownSelChanged 某下拉的下拉行被鼠标选择了 id 1 - 数据有变化
0 - 数据无变化
   
按钮 ButtonClicked 情形1: 某按钮已Clicked id      
备注:支持 CancelEvent 全局函数阻止继续执行
情形2: 鼠标点到下拉 DropTreelist 弹出窗的自定义按钮上 id   DropdownButton 自定义按钮的 id
Text HyperLink 鼠标点击了超链接的Text id号      
分页器 BeforePager 分页触发前 id号 开始行 每页行数  
备注:支持 CancelEvent 全局函数取消分页
Pager 分页触发后 id号 开始行 每页行数  
选项卡 BeforeSelChanged 选项卡(Tab)切换前 老的页签的序号 新的页签的序号 新的页签的ID 见备注1
备注1:p4参数含义为: 0表示第一次展现, 1表示已经被展现过
备注2:支持 CancelEvent 全局函数阻止继续执行
SelChanged 选项卡(Tab)切换后 老的页签的序号 新的页签的序号 新的页签的ID 见备注
备注:p4参数含义为: 0表示第一次展现, 1表示已经被展现过
BeforeClosed 选项卡某页签被手工关闭前 页签的序号   页签的ID  
备注:支持 CancelEvent 全局函数取消关闭
Closed 选项卡某页签已经被手工关闭 页签的序号   页签的ID  
BeforeExchanged 选项卡被拖拽交换位置前 被拖拽的页签id 交换前的各个页签id排列顺序,逗号分隔 交换后的各个页签id排列顺序,逗号分隔  
备注:支持 CancelEvent 全局函数取消该动作
Exchanged 选项卡被拖拽交换位置 被拖拽的页签id 交换前的各个页签id排列顺序,逗号分隔 交换后的各个页签id排列顺序,逗号分隔  
ImageFlow ImageClicked 鼠标点到某图 id号 text url  
ImageDblClicked 鼠标双击某图 id号 text url  
MouseMoveIn 鼠标移入某图 (仅style=horz) id号 text url  
MouseMoveOut 鼠标移出某图 (仅style=horz) id号 text url  
Freeform-
Tree
FreeformTreeClicked 鼠标单击树的某节点 FreeformTree的id 数据的id    
FreeformTreeDblClicked 鼠标双击树的某节点 FreeformTree的id 数据的id    
Toolbar MenuClicked 工具条对应的菜单项已选中 菜单item的id      
菜单按钮 MenuBeforePopup 鼠标点击某动态菜单按钮之后、在将要弹出菜单之前 按钮控件的id 该控件的menuID    
鼠标点击在 enableDefaultMenu="true" 的某动态菜单按钮的左侧 按钮控件的id 该控件的menuID Left  
鼠标点击在 enableDefaultMenu="true" 的某动态菜单按钮的右侧 按钮控件的id 该控件的menuID Right  
MenuClicked 菜单按钮的菜单项已选中 菜单item的id      
文件上传 Upload 有文件上传成功 文件顺序号 文件总数 见备注  
备注:如果是分块上传, p3参数是类似这样的串: "FileParts=33;CurrentFilePart=2;PassTime=00:02:33;RemainTime=00:01:30;Speed=50", 其含义如下:
  FileParts - 总块数;
  CurrentFilePart - 刚上传的块序号;
  PassTime - 已耗用的时间(时:分:秒);
  RemainTime - 估计还需要时间(时:分:秒);
  Speed - 测算到的网速,单位为 千字节/秒;
  此外,如果是将一个目录压缩成zip包上传,那么第一个Upload消息肯定是“Compressed=true”
文件上传过程中有异常       异常信息
异步方式调用全局函数 httpPostLocalFile 触发的 本地文件名 服务器返回的串 硕正插件捕捉到的异常错误串  
文件下载 Download 文件异步下载成功 任务ID号 文件名 (若toString=true则为纯数字串形式的内存块句柄, 可用全局函数 GetDataString访问)    
文件异步下载失败 任务ID号   错误信息  
文件异步下载中 任务ID号     见备注
备注1:异步方式调用全局函数 Download 将触发本事件
备注2:p4是类似这样的串: "FileSize=1002034;CurrentSize=200030;PassTime=00:02:33;RemainTime=00:01:30;Speed=50", 其含义如下:
  FileSize - 文件总长度(字节);
  CurrentSize - 已下载的长度(字节);
  PassTime - 已耗用的时间(时:分:秒);
  RemainTime - 估计还需要时间(时:分:秒);
  Speed - 测算到的网速,单位为 千字节/秒
RButtonClicked 鼠标右键点击 右键点中 Object 的 ID 号 (也可能为空串), 若有多个ID, 则相互以逗号分隔      
备注:可以在本事件中调用全局函数 Menu 自行弹出菜单
DataReach 已经访问了 dataURL(包括 Load 函数访问) 并得到了数据,但尚未应用该数据 内存块的句柄(为一纯数字串) URL    
备注1:可以用全局函数 GetDataString / SetDataString 取得或更改内存块中的数据
备注2:可以用上述2个函数存取数据,但不宜过多调用其它函数,否则会造成不稳定
DropDownDataReach 某个异步加载数据的下拉已经获得了数据并已完成加载 某个下拉资源的 id - 表示此下拉数据已经到达
Complete! - 所有异步下拉的数据已全部到达
     
备注1:异步访问http的下拉列表、下拉树列表在初始加载数据时触发
备注2:同步加载数据的下拉不会触发本事件
备注3:当全部异步下拉都完成加载后,本事件会再次被触发,p1是固定的串 "Complete!"
HotKey 触发了快捷键 快捷键 id号,如果正在输入的话    
UserEvent 全局函数 PostMessage 发出的自定义事件 自定义 自定义 自定义 自定义
CacheSaved 全局事件,请参见全局函数 ListenEvent 缓存的ID      
组件id.事件名 内部的大粒度组件的事件 和组件有关 和组件有关 和组件有关 和组件有关

  事件的js用法可参见“事件、按钮、菜单、工具条”Demo页。