`
unbounder
  • 浏览: 174367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

textarea组件异步刷新时应该注意的一个小问题

    博客分类:
  • flex
阅读更多
前阵做一个小应用,正好用到textarea这个组件,有一个很简单的需求,就是当数据提交到textarea时滚动条自动滚到最底端。
大概搜索了一下,解决方案多是用取得文档最大值的方法,譬如这个
        this.textarea.addEventListener(FlexEvent.VALUE_COMMIT,onValueCommit);
        private function onValueCommit(event:FlexEvent):void{
            this.textarea.verticalScrollPosition=this.textarea.maxVerticalScrollPosition;
         }

方法本身没有问题,但是实际效果并不好,主要在于忽视了flex是异步的这点,取到的maxVerticalScrollPosition并非实际数据刷新后的maxVerticalScrollPosition。
稍微改动一下,就可以达到目的。

			private function init():void{
				a.addEventListener(FlexEvent.UPDATE_COMPLETE,handleMessage);
			}
			
			private function handleMessage(event:Event):void {
				if (a.verticalScrollPosition < a.maxVerticalScrollPosition) {
					a.verticalScrollPosition = a.maxVerticalScrollPosition;
				}
			}


那有没有更简单的办法呢?
事实上可以不建立监听,利用ui组件的validateNow()函数让本来异步读取数据的flex看起来像是同步刷新的,譬如这样的代码
				a.validateNow();
				a.verticalScrollPosition = a.maxVerticalScrollPosition;


更加简单实现效果,推荐这种做法
1
0
分享到:
评论

相关推荐

    Tapestry5使用文档

    2. **EventLink 组件**:不仅用于跳转到另一个页面,还可以传递参数并执行相应的业务逻辑。 3. **PageLink 组件**:仅用于跳转到另一个页面,并可传递参数。 4. **LinkSubmit 组件**:以链接的形式实现表单提交...

    PrimeFaces中文教程

    PrimeFaces是一个开源的JavaServer Faces(JSF)组件库,它提供了一组丰富的UI组件,以帮助开发者创建丰富的、交云的、基于JSF的Web应用程序。PrimeFaces中文教程详细地向开发者介绍了PrimeFaces的安装和配置,以及...

    JSFandFCKeditor-.zip_faces

    7. **安全性考虑**:集成FCKeditor时,需要注意XSS(跨站脚本攻击)的安全问题。应确保所有输入都经过适当的清理和转义,避免恶意代码注入。 8. **错误处理与调试**:在集成过程中,可能会遇到JavaScript错误、资源...

    flex3的cookbook书籍完整版dpf(包含目录)

    为GroupingCollection创建异步刷新 第七章:渲染器和编辑器(215) 7.1节.创建自己的渲染器 7.2 节. 使用ClassFactory 生成渲染器 7.3节.访问设置自己渲染器的组件 7.4.节.创建一个简单的组件作为渲染器和编辑器 ...

    很不错的ExtJs PPT

    EXTJS 2.0是一个强大的B/S架构客户端程序,它为开发者提供了丰富的组件库,如表格、窗体、菜单、工具栏等,使得开发人员能够快速构建出类似于C/S系统般炫目的界面。EXTJS不仅外观引人注目,还包含了JSON和AJAX技术,...

    easyUI增删改查

    首先,你需要创建一个包含所有必要字段的表单,每个字段可以是`&lt;input&gt;`、`&lt;select&gt;`或`&lt;textarea&gt;`元素,然后通过CSS类`form-easyui`使它们具有EasyUI样式。表单提交时,可以使用AJAX将数据发送到后台服务器,处理...

    PrimeFaces学习教程

    PrimeFaces是一个开源的JavaServer Faces (JSF)组件库,提供了大量的UI组件以增强JSF Web应用程序的开发效率和用户体验。安装PrimeFaces通常涉及将库添加到项目的依赖管理工具中(如Maven或Gradle),或者直接将jar...

    primeface参考书

    18. **Dashboard**:仪表板组件,用于显示多个小部件。 19. **DataExporter**:数据导出工具,用于将数据导出为Excel或CSV格式。 20. **DataGrid**:数据网格,用于展示数据列表。 21. **DataList**:数据列表,以...

    primefaces_users_guide_3_3.pdf

    - **PrimeFaces**:这是一个基于JavaServer Faces(JSF)的开源JavaScript库,提供了一系列丰富的用户界面组件,旨在简化Web应用开发并提升用户体验。 - **PrimeTeknoloji**:PrimeFaces由PrimeTeknoloji公司开发和...

    bootstrap 留言板-包含展示和留言两部分

    表单通常会有一个明确的提交按钮,点击后将触发后台处理,例如通过AJAX异步提交,这样可以保持页面的流畅性,不让整个页面刷新。 在回复功能方面,Bootstrap留言板可能会有嵌套评论的设计,即用户可以直接对某条...

    JSPAjaxDWR框架函数.docx

    在使用DWR时,通常我们会创建一个或多个Java类,并通过DWR的配置将其暴露给JavaScript。这样,客户端的JavaScript可以直接调用这些Java方法,就像它们是本地函数一样。例如,我们可能会有一个`Remote`类,其中定义了...

    mall-xiaohongshu-小程序模仿小红书.zip

    最近我也开始了学习小程序,学了一段时间后,想看看这段时间的学习效果,于是边学习边开始了我的第一个小程序。相信很多人都用过小红书吧,我可是被它安利了很多好东西呢,所以想着就仿写一个小红书的微信小程序吧。...

    第10章 表单元素[中]

    例如,`&lt;textarea name="message"&gt;&lt;/textarea&gt;` 创建一个文本区域,用户可以在这里输入消息。 3. **下拉菜单(select)**:通过`&lt;select&gt;`标签创建下拉列表,用户可以选择其中一个选项。例如: ``` 红色 蓝色 ...

    Tailwind+CSS制作流行的用户注册界面.zip

    Tailwind是一个高度可配置的CSS库,它的核心理念是提供一组低级、不具样式的设计原子,如间距、颜色、字体和布局,而不是预设的组件或样式。这样,开发者可以完全控制设计的每一个细节,同时保持代码的简洁和一致性...

    前端控件集.zip

    本资源“前端控件集.zip”提供了一个小案例集合,这些案例旨在展示和练习各种前端控件的使用,帮助开发者提升技能并快速理解和应用。控件是构建用户界面的基本元素,包括按钮、输入框、下拉菜单、滑块、日历选择器等...

    个人信息提交表单代码.zip

    【描述】提到的"个人信息提交表单代码"是用于开发前端网页的一个关键组件,它利用JavaScript来提升用户体验。原生JavaScript意味着不依赖任何外部库如jQuery或其他框架,而是直接使用浏览器内置的API来编写代码。...

    使用JqueryMobile开发购物网站

    每个页面都被视为一个独立的单元,通过链接或程序导航在不同的页面之间切换,这种设计有利于优化移动设备的性能。 2. **主题和样式**:JqueryMobile提供了一套完整的主题系统,可以通过简单的类名应用到元素上,...

    Web前端开发详细教程, Web前端开发代码大全, 包含各种框架详解

    4. **AJAX**:异步JavaScript和XML,用于实现网页的局部刷新功能。 #### 三、前端框架详解 ##### Bootstrap Bootstrap是一个非常流行的前端框架,它基于HTML、CSS和JavaScript,提供了大量的预定义样式和组件。 ...

    表单和浮动窗口

    表单是网页上用于收集用户输入数据的组件,常见的有输入框(text)、单选框(radio)、复选框(checkbox)、文本域(textarea)、密码框(password)以及文件上传(file)等。表单通常由`&lt;form&gt;`元素包裹,它定义了...

Global site tag (gtag.js) - Google Analytics