在Dorado中的dataColumnppt中加入超链接接怎么弄

可变编辑器Grid默认在光标激活某一个单元格的时候会自动提供数据编辑器:可以根据需要添加不同类型的编辑器:TextEditorTextAreaCheckBoxRadioGroup添加的方法为在DataColumn下的editor节点下添加对应的编辑器:以上场景是解决一个DataColumn具有一种编辑器类型的使用方式,这可以满足大多数的要求,但是在一些特殊的场景下,我们希望一个DataColumn列表下的编辑器类型可以根据当前行的数据特征而有所不同,如下图:我们希望第1,2,3,4行中可变编辑器列的编辑器为TextEditor,而第5行的编辑器为CheckBox,第六行的编辑器类型为RadioGroup,第七行的编辑器类型为NumberSpinner等,对于这种需求我们下面来看如何在Grid中实现。选择DataColumn的事件面板,可以看到一个叫onGetCellEditor的事件:我们可以在该事件中实现自定义的编辑器的控制:
如果要创建checkbox则可以通过如下代码实现:
多种混合模式代码为:
自定义渲染器另外我们还可以自定义单元格的渲染器,默认情况下单元格的渲染器都是文本显示,但是我们也可以把Grid的渲染器做调整,以出现如下的效果:
当然实际使用中我们不一定要将单元格渲染为编辑器,也可以渲染为别的,例如图片超链接等,这些范例可以参考sample-center中本例渲染为编辑器的基本用法为:实现DataColumn的自定义的渲染器。自定义渲染器需要继承ControlCellRenderer对象,如:
也可以创建别的控件,如创建Checkbox:
创建好新的CellRenderer之后,我们只需要将这个CellRenderer配置到对应的DataColumn中就可以:
其中myDataColumn是DataGrid中的一个DataColumn的名称。另外为了实现数据绑定:当DataSet中的数据发生了变化(不一定是直接通过当前的Grid编辑触发的,有可能是表单中编辑,也有可能在一个按钮的单击事件中通过js代码修改了DataSet的内部数据),我们希望Grid中自定义的编辑器的内容可以自适应的发生变化,则我们还需要实现ControlCellRenderer的一个事件,如:
其中refreshControl事件是由DataGrid主动触发的,当它感知到当前DataSet中的数据发生变化的时候就会自动触发refreshSubControl,并且其中的arg.data就代表了DataSet的当前实体对象。myPropertyDef为与myDataColumn对应的DataType中的某一个PropertyDef。view中ds动态添加field,加载不出数据 - DORADO - DORADO - ITeye群组
dsZhongzhuan.flushData();
dsZhongzhuan.moveFirst();
var i =1;
while (!dsZhongzhuan.isLast()) {
& var record = dsZhongzhuan.getCurrent();
& var dept_name = record.getValue("dept_name");
& var field =& dataset.addField(dept_name,"string");
& field.setLabel(dept_name);
& var col= tableDs.addColumn("zzname"+i);
& col.setLabel(field.getName());
& col.setField(field.getName());
& col.setLabel(field.getLabel());
& col.setAlign("center");
& col.setHeaderClickable(true);
& dsZhongzhuan.moveNext();
}
通过上方代码,动态添加field;
我后台通过dataset.addRecords(list);添加数据,debug看到list中有各个zzname(1~n) 的数据,但是数据展示不出来?请问如何解决?
相关资源推荐在Dorado未支持Datatable中自动换行功能之前的解决办法
编辑:www.fx114.net
本篇文章主要介绍了"在Dorado未支持Datatable中自动换行功能之前的解决办法",主要涉及到在Dorado未支持Datatable中自动换行功能之前的解决办法方面的内容,对于在Dorado未支持Datatable中自动换行功能之前的解决办法感兴趣的同学可以参考一下。
//实现Datatable自动换行function autoChangeRowsInTable(column,row,cell,value){var strSize = 13;/*建议调整为13,若为10某些情况下仍不能&&&&&&&&&&&&&&&&&&& 完全换行,一个测试例子是拷贝多次输入"一二三四五六七八九十",&&&&&&&&&&&&&&&&&&& 每行结尾都不能完全显示*/var j = Math.round(column.getWidth() / strSize - 0.5);/*计算每行的字数,非完全准确,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 但基本接近*/var rowNum = 0;//记录行数var str = "";
var enterNum = value.split('/n').length - 1;//获取目标字符串内的回车数var strArray = value.split('/n');//根据回车符将目标字符串划分为多个字符串数组if(enterNum&0){&&&&& //对字符串数组内的每个字符串再进行是否需要换行的判断处理&&&&& for(var index=0;index&strArray.index++){&&&&&&&&& var rowNumBetweenEnter = Math.round(strArray[index].length / j + 0.5);&&&&&&&&& for(var i=0;i&rowNumBetweenEi++){&&&&&&&&&& if(i==(rowNumBetweenEnter-1)){&&&&&&&&&&&& str = str +strArray[index].substr(i*j,j);&&&&&&&&&& }else{&&&&&&&&&&&& str = str +value.substr(i*j,j)+"&br&";//换行&&&&&&&&&& }&&&&&&&&& }&&&&&&&&& if(index != (strArray.length-1)){&&&&&&&&&&&& str = str + "&br&";//对字符串中的回车用&br&替代&&&&&&&&& }&&&&& }&&&&& //取最终显示的字符串中的&br&数量作为单元格中显示的行数&&&&& rowNum = str.split('&br&').&&&&& cell.innerHTML =}else{&&& rowNum = Math.round( value.length / j + 0.5)&&& for(var i=0;i&rowNi++){&&&&&& if(i==(rowNum-1)){&&&&&&&& str = str + "&a&"+value.substr(i*j,j)+"&/a&";&&&&&& }else{&&&&&&&& str = str + "&a&"+value.substr(i*j,j)+"&/a&&br&";//换行&&&&&& }&&& }&&& rowNum = str.split('&br&').&&& cell.innerHTML =}row.style.height = rowNum * 18;cell.style.height = rowNum * 18;}
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:巴克的空间--JAVA
dorado 中设置动态行高
dynaRowHeight="true"
设置动态行高为true之后,在设置nowrap为false,即可以允许换行。 实现了一个单元格内可以换行的作用
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
添加一个DataGrid表,在表中添加RowSelectorColumn列,DataGrid数据加载完不点击,设置第一行数据为已选状态,请问该如何写js的代码?
您好,问题已经解决。有两种方案可供参考:
1.用数据集的方法解决问题。
在当前DataDype下添加一个PropertyDef,添加完成后在DataGrid节点下添加RowSelectorColumn控件,在当前DataGrid的rowSelectionProperty属性绑定PropertyDef。绑定好以后在DataSet的onLoadData事件中写JS代码:
var entity=view.get(&#datasetEmployee&).getData().getFirst ( ); //取得原始数据列表
entity.set('PropertyDef',true);
2.在DataGrid节点下添加RowSelectorColumn控件,然后在DataSet的onLoadData事件中写JS代码,事件通过先获取原始数据列表,在获取列表第一行的数据来设置第一行数据为已选状态。代码如下:
setTimeout(function(){
var entity=view.get(&#datasetEmployee&).getData().getFirst ( ); //取得原始数据列表
view.set(&#datagridEmployee.selection&,entity);
非常感谢!!!
要回复问题请先或
关注: 2 人}

我要回帖

更多关于 公众号中加入超链接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信