14.事件
Event | 含义 | p1 | p2 | p3 | p4 |
---|---|---|---|---|---|
SelChanged | 当前行或单元格已变化(被切换) | 行号 | 列名(见备注) | ||
备注:当p2参数为空串时, 表示当前行已变化: 否则表示当前单元格已变化, 并且进入编辑状态 | |||||
Clicked | 情形1: 鼠标点到某单元格 | 行号 | 列名 | 如果当前列为超链接, 则为本单元格的内容 | HyperLink |
情形2: 鼠标点到某列表头 | -1 | 列名 | 1 / 0 / icon(见备注) | ||
备注:如果是isCheckboxOnly 列, 则p3为 1 或 0; 如果是点击在headerIcon小图标上,则p3为串icon | |||||
情形3: 鼠标点到 EditWithButton 输入框右侧的按钮 | 行号 | 列名 | 见备注 | ||
备注:p4参数规定为:如果当前列为 Button 型 或 editWithButton 型, 鼠标点在 button 上则为 "button";如果列中有多个 button,那么分别为 "button1"、"button2"... 依次类推 | |||||
情形4: 鼠标点到下拉 DropTreelist 弹出窗的自定义按钮上 | 行号 | 列名 | DropdownButton | 按钮的 id | |
DblClicked | 鼠标双击某单元格 | 行号 | 列名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | |||||
BeforeEdit | 某单元进入编辑(输入)前 | 行号 | 列名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | |||||
EditChanged | 某单元被修改 | 行号 | 列名 | ||
执行了右键菜单的"粘贴" | 开始行号 | 开始列名 | 结束行号 | 结束列名 | |
备注:在编辑状态下单元格内部的右键菜单是操作系统的菜单,是不会触发本事件的 | |||||
DropdownSelChanged | 某单元的下拉 Treelist 的选中行已变 | 行号 | 列名 | 1 - 数据有变化 0 - 数据无变化 |
|
备注:该事件和 EditChanged 不太一样, 因为下拉以后, 仍可以通过 Esc 键反悔、 不再触发 EditChanged 事件. 当然,如果您在 <properties> 中设定了 AutoUpdate="true", 那就无法用 Esc 反悔了 | |||||
BeforeDropdown | 某单元的下拉 List 或下拉 Treelist 正准备下拉 | 行号 | 列名 | ||
备注:可执行全局函数CalcelEvent( )阻止继续执行, 但仅对下拉 Treelist 有效, 对下拉 List 无效 | |||||
EditKeydown | 在编辑状态时输入框的键盘动作 请见备注2 |
行号 | 列名 | 键的ASCII码,例如回车是13、空格是32 | 见备注2 |
备注1:EditKeydown 和 EditChar 事件均为在输入框中的键盘事件,EditKeydown 能捕获几乎所有键盘动作,包括非字符的回车、Tab等;而 EditChar 事件则以输入的字符为主,包括中文; | |||||
备注2:p4的含义为: 1-Ctrl键也按下了; 2-Shift键也按下了; 3-二者一起按下了 | |||||
备注3:您可以执行全局函数 CancelEvent( ) 去阻止继续执行,就如事件没有发生过那样,但不同的ASCII码,您需要在这两个事件中挑选一个执行CancelEvent( ),具体请在演示页“12.事件”中去测试 | |||||
EditChar | 在编辑状态时输入框的键盘字符 | 行号 | 列名 | 字符的ASCII码 | |
备注:EditKeydown 和 EditChar 事件均为在输入框中的键盘事件,EditKeydown 能捕获几乎所有键盘动作,包括非字符的回车、Tab等;而 EditChar 事件则以输入的字符为主,包括中文; | |||||
Keydown | 在非编辑状态时的键盘动作 | 行号,如果有多行则以逗号分隔 | 键的ASCII码,例如回车是13、空格是32 | 见备注2 | |
备注1:可执行全局函数CalcelEvent( )阻止继续执行 | |||||
备注2:p4的含义为: 1-Ctrl键也按下了; 2-Shift键也按下了; 3-二者一起按下了 | |||||
LooseFocus | 某单元刚失去焦点 | 行号 | 列名 | 导致失去焦点的动作键位值: 9 - Tab 13 - 回车 37 - left 38 - up 39 - right; 40 - down 空串 - 鼠标或其它原因导致 |
|
rowsInserted | 有行插入 | 新行的行号 | 数量 | ||
BeforeRowsDeleted | 有行即将被删除 | 被删行的行号, 若有多行则以\t分隔 | |||
备注:可执行全局函数CalcelEvent( )阻止继续执行 | |||||
rowsDeleted | 有行被删除 | 被删行的Key, 若有多行则以\t分隔 | 被删除行的原始内容(XML串), 或内存句柄(纯数字串) | ||
备注1: 未定义 key 的 Treelist 不会触发该事件; 备注2: 如果P2参数是内存句柄, 可以用全局函数 GetDataString 取得串 | |||||
LazyLoad | LazyLoad="true"的单列多层树的树杈被首次点击 | 行号 | id号 (当treeformat为byId、byPid时) | ||
MenuBeforePopup | 鼠标右键菜单即将弹出 | 行号, 可能为-1 |
列名, 有可能为空 |
||
MenuClicked | 鼠标右键菜单自定义功能被选中 | 菜单项id | 行号 | 列名 | |
BeforeDragRow | 行即将被拖拽 | 被拖动的行,多个行则以逗号分隔 | 目的行 | 1/0 - 拖动到目的行的上方/下方 | 见备注2 |
备注1:可执行全局函数CalcelEvent( )阻止继续执行 | |||||
备注2:p4参数格式为 handle=[?];asChild=true,例如串 "handle=82922093;asChild=true",其中 handle 的含义为源 Treelist 的句柄(可通过 GetHandle 函数获得),如果是自我拖拽,则不出现该项;asChild=true 表示作为子孙拖入,如果非子孙、或者当前非树,则不出现该项. | |||||
RequestAllPages | 需要加载全部数据,以打印或转换输出 | ||||
备注:用于分页显示时 | |||||
Switched | 被执行了树、列表之间的切换 | ||||
备注:仅在弹出菜单时触发, 通过 js 进行切换是不会触发的 | |||||
Sort | 已重新排序 (触发了排序操作) | 如果<Properties>中定义了IsRemoteSort, 则为“1”,否则是空 |
|||
CustomAble | 用户修改了界面中与可定制(GetCustom函数)有关的内容, 如选择显示列、列宽等等 | ColHideShow - 列的显示/隐藏有变化 ColWidth - 列的宽度有变化 ColSeq - 列的左右排列次序有变化 |
|||
备注:目前 p1 只有这几种,今后版本会继续完善. | |||||
InvalidMouseWheel | 无效的鼠标滚轮操作 | 如果顶部已经是第一行仍然要上滚,为"up"; 如果底部已经是末行仍要下滚, 则为“down” | |||
备注:常用于分页显示情形 | |||||
Printed | 已打印 (是指打印任务已经发送给操作系统的打印任务队列) |
0 - 普通打印; 1 - 在预览窗口中的打印当前页; 2 - 在预览窗口中的打印全部页; |
|||
Previewed | 打印预览窗已关闭 | ||||
Load | 数据已经通过Load( )函数加载 | URL, 空串表示加载的是XML/JSON串 | 0-同步加载 1-异步加载 |
0-加载失败 1-加载成功 |
|
Imported | 刚从Excel文件导入 | 导入的起始行的行号 | 导入的总行数 | ||
ExportDialog | 转换输出对话框中,当用户点击"确定"后、文件对话框即将弹出前 | 文件后缀 | |||
备注:可以在该事件中执行 SetExportFilename 函数,详见该函数的说明. | |||||
MouseMoveIn | 鼠标移入某个单元格 | 行号 | 列名 | ||
备注1:<Col>设定了 MouseMoveIn 属性值才能生效 | |||||
备注2:鼠标在单元格上方停留不动、停留时间超过设定的值才触发该事件 | |||||
MouseMoveOut | 鼠标移出某个单元格, 和鼠标移入事件 MouseMoveIn 配对 | 行号 | 列名 | ||
UndoState | Undo状态有改变 | ||||
DataReach | 已经访问了 dataURL(包括 Load 函数访问) 并得到了数据,但尚未应用该数据 | 内存块的句柄(纯数字串形式) | URL | ||
备注1:可以用全局函数 GetDataString / SetDataString 取得或更改内存块中的数据 | |||||
备注2:可以用上述2个函数存取数据,但不宜过多调用其它函数,否则会造成不稳定 | |||||
DropDownDataReach | 某个异步加载数据的下拉已经获得了数据并已完成加载 | 某个下拉资源的 id - 表示此下拉数据已经到达 Complete! - 所有异步下拉的数据已全部到达 |
|||
备注1:异步访问http的下拉列表、下拉树列表在初始加载数据时触发 | |||||
备注2:同步加载数据的下拉不会触发本事件 | |||||
备注3:当全部异步下拉都完成加载后,本事件会再次被触发,p1是固定的串 "Complete!" | |||||
HotKey | 触发了快捷键 | 快捷键 | 当前行的行号, 如果正在输入的话 | 当前列的列名, 如果正在输入的话 | |
UserEvent | 全局函数 PostMessage 发出的自定义事件 | 自定义 | 自定义 | 自定义 | 自定义 |
CacheSaved | 全局事件,请参见全局函数 ListenEvent | 缓存的ID | |||
Download | 全局事件,请参见Freeform组件的同名事件 | ||||
Upload | 全局事件,请参见Freeform组件的同名事件 |