在Flex的DataGrid中展示长字符串比如数据库中的Clob字段一般的做法都是在对应的列区域放入一个按钮如果用户需要查看的话就点进去弹出一个窗口或者编辑器,等不用的时候再关闭。
在Flex中这个功能是用ItemRender来实现的。以下代码通过一个PopUpButton和RichTexEditor来实现的。在查看消息历史的应用中,有两个Clob字段需要展示,一个是消息本身,另一个是在消息出来出现异常的情况下查看异常信息。所以用到了PopUpButton,用RicheTexEditor主要是他功能较多,只为了好看吧。你可以用别的如TextArea等替换的。
package message.utils
{
import flash.events.MouseEvent;
import mx.containers.TitleWindow;
import mx.controls.Button;
import mx.controls.Menu;
import mx.controls.PopUpButton;
import mx.controls.RichTextEditor;
import mx.events.CloseEvent;
import mx.events.MenuEvent;
import mx.managers.PopUpManager;
public class ClobColumnItemRender extends PopUpButton
{
private var menu:Menu;
private var rt:RichTextEditor;
private var titleWin:TitleWindow;
public function ClobColumnItemRender()
{
super();
menu = new Menu();
var dp:Object = [{label:"消息"},{label:"异常"}];
menu.dataProvider = dp;
menu.addEventListener(MenuEvent.ITEM_CLICK,changeHandler);
this.popUp = menu;
this.addEventListener(MouseEvent.CLICK, showMsg);
this.label = dp[0].label as String;
rt=new RichTextEditor();
rt.horizontalScrollPolicy="off";
rt.verticalScrollPolicy="off";
rt.visible=false;
}
override public function set data(value:Object):void{
super.data = value;
this.rt.text = value.message as String;
}
//Show The Message Or Error Log ,s Detail Information
private function showMsg(event:MouseEvent):void
{
this.titleWin=PopUpManager.createPopUp((event.currentTarget as Button).parent, TitleWindow, true) as TitleWindow;
this.titleWin.title="Messag Information";
this.titleWin.showCloseButton = true;
this.titleWin.addEventListener(CloseEvent.CLOSE, closeHandler);
this.titleWin.addChild(rt);
rt.visible=true;
PopUpManager.centerPopUp(titleWin);
}
//When Sub Pop-Up Button Change Event Is Despatched Decide Msg Or Log To Show
private function changeHandler(event:MenuEvent):void{
this.label = event.label;
if(data.hasOwnProperty("message") && label=="消息"){
this.rt.text = data.message;
}else if(data.hasOwnProperty("exception")&&label =="异常"){
this.rt.text = data.exception;
}
this.close();
}
//Close The Sub Poped RicheTextEditor
private function closeHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(this.titleWin);
this.rt.visible=false;
}
}
}
分享到:
相关推荐
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
CLOB 的优点是可以存储大量的字符数据,并且可以使用字符串操作来处理 CLOB 数据。 BLOB(Binary Large OBject)是另一种数据库类型,用于存储二进制大对象。它是一个大文件,典型的 BLOB 是一张图片或一个声音文件...
CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型用于存储文本数据,可以存储长文本、文章、备注等信息。在 Oracle 数据库中,CLOB 类型对应的数据库...
当ORACLE需要存放一些不定长而长度又长于4000字符的字符串时,可考虑使用ORACLE的CLOB类型进行存储,此时就要将该字符串转化为CLOB类型。
ORACLE中CLOB字段转String类型
今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...
mybatis 对clob类型转换,解决clob类型数据插入数据库报异常问题
向orcale数据库中插入一个txt格式的文本文档,即clob类型的数据
CLOB字段类型报错 ORA-01704:文字字符串过长的解决
CLOB 字段可以存储大量的 Unicode 字符串数据,并提供了高效的读写机制。 将 Image 类型数据导出到 Oracle 的 CLOB 字段中 为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java...
数据库中clob类型转换的问题 数据库中clob类型转换的问题
Oracle,Clob,Blob数据操作例子
对非DB2数据库的数据复制, 不直接支持LOB(BLOB,ClOB)等大对象数据类型,但在实际应用中,用户需要复制的表中有可能有BLOB等大对象数据,如果数据目标为Oracle,这类大对象复制的需求可通过对WII的复制进行特殊配置实现...
JAVA读CLOB对象 完整代码 very good very strong
把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
关于在oracle数据库中读取clob大字段问题
用Hiberate处理CLOB字段 ;通过Hiberate处理CLOB类型的数据;
Clob 类型用于存储大规模的字符数据,而 Blob 类型用于存储大规模的二进制数据。在 Java 中,处理 Clob 和 Blob 类型需要使用特殊的注解配置来确保正确地读取和写入数据。 一、Clob 类型的注解配置 在 Java 中,...