dorado7常用内容
1.dataset添加数据
this.get("#dsProduct").getData().insert();
或者this.get("#dsProduct").insert();
this.get("#dsProduct.data").insert();推荐使用
“#dsProduct.data”表示拿到数据对象
2.删除当前选择记录
var record = this.get("#dsProduct.data:#");
if (record) {
dorado.MessageBox.confirm("确认要删除当前记录吗?", function(){
record.remove();
});
}
else {
dorado.MessageBox.alert("当前没有数据可以删除!");
}
//获得当前dataset的字段,并赋值(dorado7升级包,特别注意)
var pkVipCustomer = view.get("#dsVipCustomer.data:#").get("PK_COO_CRM_VIPCUSTOMER");
view.get("#dsVipCustomerCoop").set("parameter",{
pkVipCustomer: pkVipCustomer,
org:"test"
});
//含有下级Reference
view.get("#dsPrCenter").getData("#").getData("#stmain");
view.get("#dsPrCenter").getData("#.#stmain");
3.dataset放弃当前操作数据
this.get("#dsProduct.data:#").cancel();
4.显示dialog对话框
this.id("dialogEdit").show();
this.get("#dialogEdit").show();
5.隐藏dialog对话框
this.get("#dialogEdit").hide();
6.参数查询,其中默认情况下Entity中存储数据的key值使用每一个AutoFormElement的name属性;如果使用了property属性,那么key将使用property属性设定的值
var entity = this.get("#autoForm1.entity");//保证json对象内部的参数与后台接受的parameter参数名相同
this.get("#dsProduct") .set("parameter",entity).flushAsync();
//获得AutoForm中的entity内容
var entity = this.id("recAutoForm").get("entity");
alert(entity.length+" "+entity.width);
7.获得当前实体对象数据的“产品名称”
dorado.MessageBox.alert(this.get("#dsProduct.data:#.productName"));
8.对实体对象属性设值
this.set("#dsProduct.data:#.productName","testValue");
9.通过json对象赋值,清除查询框内容
this.set("#autoForm1.entity", {
productName: null,
unitsInStock: null
});
//升级版本
view.get("#themeDetailForm.entity").set("REASON_MEMO","");//设定当前编辑框值为空
10.ListDropDown和AutoMappingDropDown的区别
ListDropDown ==》self.set("value",1);系统直接会将数值1赋给文本域
AutoMappingDropDown ==》self.set("value",1);系统会根据对应的文本域的属性mapValues绑定的Entity进行映射显示。
例如这里映射的Entity对象为1 男,0 女。在这里文本域会根据设置显示为“男”
11.通过点击菜单节点,获得当前节点对应dataset的entity对象对应的属性
var node = self. get("currentNode");
if(node.get("level")==3){
//获得当前节点对应的数据实体对象
var entity = self.get("currentNode.data");
//通过实体对象名称.属性获得指定的属性值
var id = entity.get("example.id");
//刷新对应的dataset
this.get("#dsExample").set("parameter",id).flushAsync();
}
12.TabControl中tab的切换
// 通过tab的name属性切换
view.get("#tabControl").set("currentTab","tab2");
// 通过tab的索引(index)属性切换
view.get("#tabControl").set("currentIndex",1);
//根据名字切换tab
var tab = self.get("currentTab").get("name");
if(tab!="tab4"){
view.id("tabControl").disableTab("tab4");
}
13.对AutoForm表单中的字段设定只读和是否显示
var element = view.get("#themeDetailForm").getElement("REASON_MEMO");
element.set("readOnly",false);
view.get("#procTopicHeaderForm").getElement("TOTAL_SCORE").set("visible",false);
14.对按钮的控制显示
view.get("#btnPrint").set("visible",true);
15.EntityList的遍历
var datas = this.id("dsHeader").getData("#.detail");
datas.each(function(entity){
alert(entity.get("RIGHT_MODE"));
alert(entity.get("RIGHT_ITEM"));
});
//获取当前选择的项
var datas = this.get("#dgProcZperright").get("selection");
var flag = false;
//遍历选择项,判断当前被遍历的数据是否包含已生成试卷的项
datas.each(function(entity){
var isCreatePaper = entity.get("IS_CREATE_PAPER");
//若有调整,若无执行生成过程
if(isCreatePaper=="1"){
flag = true;
return false;
}else{
flag;
}
});
//若有调整,若无执行生成过程
if(flag==true){
dorado.MessageBox.alert("当前选择项包含已生成试卷的项,请调整!");
}else{
}
//选择项是否选择(false代表未选中,true代表被选中)
view.id("sourceGrid").set("selection","false");
alert(view.id("sourceGrid").get("selection"));
//设定为单项选择项
view.get("#sourceGrid").set("selectionMode","singleRow");
//判断选择的项数量
var entity = view.id("sourceGrid").get("selection");
if(entity.length>1){
}
16.获取Reference对应的DataType中的字段
var entity = this.id("dsHeader").getData("#.#detail");
alert(entity.get("RIGHT_MODE"));
var entity = view.get("#dataSetGroup.data:#.#users");
alert(entity.get("username"));
17.dataset中数据传递set
//由于RIGHT_MODE字段的无法保存数据,使用了自定义字段MODE替代,传递后台保存数据
var entity = this.id("dsHeader").getData("#.#detail");
var right_mode = entity.get("RIGHT_MODE");
if(right_mode!=null){
entity.set("MODE",right_mode);
}
18.关闭下拉框
view.id("customDropDown").close(value);
19.获得dataset的当前记录常用的写法
var entity = view.get("#dataSetGroup.data:#.rp_confield_desc");
var entity = view.id("dataSetGroup").getData("#.rp_confield_desc");
var entity = view.get("#dataSetGroup.data:#");
var a = entity.get("rp_confield_desc");
var entity = view.get("#dataSetGroup.data:#").get("rp_confield_desc");
20.action的参数传递方式,以及获得返回值
var rightMode = "";
view.id("actGetPatter").set("parameter",{
"tableName" : tableName,
"fieldName" : fieldName
}).execute(function(result){
rightMode = result.RIGHT_MODE;
});
后台对应的方法
public Map<String, Object> getPatter(String tableName, String fieldName) {}
20.//iReport的下载和在线预览
bdf.JasperReports.prototype.showReport=function(jasperFile,parameters){}
bdf.JasperReports.prototype.downloadReport=function(jasperFile,type,parameters){}
21.通过业务的某个字段在刷新后再次定位到当前数据实体
var entity1 = view.get("#dataSetUser.data:#");
var entityList = view.get("#dataSetUser.data");
view.get("#dataSetUser").set("pageNo",2);
view.get("#dataSetUser").flushAsync();
//entityList.first();
entityList.each(function(entity){
if(entity1.get("username")==entity.get("username")){
entityList.setCurrent(entity);
}
});
22.view中定义公用的function
self.resetUserPhoto = function(){}
window.changeUserPhoto = function(img){}
window.self 功能:是对当前窗口自身的引用。它和window属性是等价的。语法:window.self。注:window、self、window.self是等价的。
window.top 功能:返回顶层窗口,即浏览器窗口。 语法:window.top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。
window.parent 功能:返回父窗口。语法:window.parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。
23.动态创建按钮并关闭父页面的dialog
this.createButton = function(){
view.addChild(new dorado.widget.Button({
id: "saveButton",
caption: "中途提交",
action: "SavePersResult",
icon: "url(>skin>common/icons.gif) -20px 0px",
onClick: function(self,arg){
view.id("SavePersResult").execute();
//关闭父页面
window.parent.$id("dialogTopicDetail").objects[0].hide();
} }));
}
将控件添加到AufoForm中
this.createMidButton = function(){
view.id("form").addElement(new dorado.widget.Button({
id: "saveMidButton",
caption: "中途提交",
action: "SavePersResult",
icon: "url(>skin>common/icons.gif) -20px 0px",
onClick: function(self,arg){
view.id("SavePersResult").execute();
if (window.parent.$id("dsTopicList").objects[0].getData("#").get("IS_CREATE_PAPER") == "0") {
window.parent.$id("dsTopicList").objects[0].getData("#").set("IS_CREATE_PAPER","1");
window.parent.$id("updateAction1").objects[0].execute();
}
//关闭父页面
window.parent.$id("dialogTopicDetail").objects[0].hide();
} }));
}
24.修改TextEditor的文字样式以及边框颜色
在onRefreshDmo添加
$(self.getDom().firstChild).css("color","yellow");
var oHead = oHtml.firstChild;
var oBody = oHtml.lastChild;
var oHead = oHtml.childNodes.item(0);
view.set("#text.style",{
"border": "1px #FC3737 solid",
color: "red"
});
24.返回datagrid的rownumcolumn的序列号,其中rowmun的下表从0开始,所以取值的时候位index+1
var grid = view.id("dgPrStitem");
var entity = grid.getCurrentItem();
var row = grid.get("itemModel").getItemIndex(entity)+1;
alert(row);
24.datagrid数据行的上下移动
//datagrid中数据向下移动一行(向上移动的效果思路一致)
//思路:
//1. 首先获得当前移动的数据entity,并且将光标移到到下一行move(1);
//2. 其次记录移动后光标定位的数据eneity,并且将上一行的数据remove掉;
//3. 最后将原本的entity数据insert到光标定位到当前行的后面。
//这样整体上形成的效果就是数据向下移动
var grid = view.id("dgPrStitem");
var entity = view.id("dsPrStitem").getData("#");
var entityList = view.id("dsPrStitem").getData();
entityList.move(1);
entityList.remove(entity);
//获得当前数据的序列号,修改移动后数据的序列号
var currentity = view.id("dsPrStitem").getData("#");
var rown = grid.get("itemModel").getItemIndex(currentity)+1;
currentity.set("RANK_ORDER",rown);
//添加的数据,并修改序列号
entityList.insert(entity,"after",currentity);
var insertentity = view.id("dsPrStitem").getData("#");
var rowns = grid.get("itemModel").getItemIndex(insertentity)+1;
insertentity.set("RANK_ORDER",rowns);
insertentity.setState(dorado.Entity.STATE_MODIFIED);
view.id("actStItem").execute();
25.bdf对页面布局的保存和重置
保存界面
var componentProfile = new bdf.ComponentProfile.DataGrid();
componentProfile.saveGridSet(this,"gridMain");
重置界面
var componentProfile = new bdf.ComponentProfile.DataGrid();
componentProfile.resetGrid(this,"gridMain");
26.CheckBox换行问题
不考虑在默认支持此功能,给两个解决办法:
1. 使用exClassName
比如为CheckBox定义一个exClassName是d-checkbox-multiline,然后这么定义CSS:
.d-checkbox-multiline {
height: auto;
}
.d-checkbox-multiline .caption{
white-space: normal;
}
RadioButton类似。
2. 既然使用了HtmlContainer,就使用原生的Html中的CheckBox和RadioGroup。
27.datagrid列头换行问题
onRenderHeaderCell 事件中写
arg.dom.innerHTML="1<br>2<br>3";
28.自定义控件创建
var dom = jQuery(arg.dom);
dom.empty();
dom.xCreate({
tagName: "Button",
content: "打印",
onclick: function(){
alert(11);
}
});
29.鼠标指针移动到指定的对象上时发生
在控件的onCreateDom()中添加
arg.dom.onmouseover = function(){
//这里面处理
dorado.widget.NotifyTipManager.notify("鼠标移动到我上面时,会自动出现提示信息!");
}
30.鼠标移动到某个控件上让鼠标指针变成小手
添加style cursor:pointer
31.树节点的处理(递归树)
------------------------------------------------------------------------------------------------------
/**
* 获得所有的顶级节点
*/
//根节点,此节点时树状列表内部的顶层节点
var root = self.get("root");
var nodes = root.get("nodes");
//节点记录的变量
var labels = "", label = "", childLabels = "", rootLabel="", childNodes, childChecked, count = 0;
//遍历根节点
nodes.each(function(node){
var checked = node.get("checked");
//checked包含三种状态,选中(true)、半选中(null)、不选中(false)。当为true、null时表示选中
if(checked!=false){
count++; //父节点计数器
rootLabel = node.get("label"); //父节点
label = getChildNode(node); //子节点
if(childLabels){
childLabels="";
}
//拼接label字符串
labels += count+"."+rootLabel +": "+ label+"; ";
}
});
//将拼接的label赋值给label
view.id("label4").set("text",labels);
/**
* 处理递归子节点的函数
* @param {Object} node
*/
function getChildNode(node){
//判断当前选中节点是否展开,并是否包含被选中的子节点
if(node.get("expanded")==true){
childNodes = node.get("nodes");
childNodes.each(function(childNode){
childChecked = childNode.get("checked");
if(childChecked!=false){
if(childLabels){
childLabels += ","+childNode.get("label");
}else{
childLabels+=childNode.get("label");
}
//递归函数调用
getChildNode(childNode);
}
});
return childLabels;
}
}
------------------------------------------------------------------------------------------------------
32.DataGrid的DataColumn中定义CheckBox
1】设定DataType字段为boolean类型,对应的DataColumn自动为CheckBox;
2】设定DataColumn的renderer属性为dorado.widget.grid.CheckBoxCellRenderer
3】非Boolean类型CheckBox用法设置
/*
var CellRenderer = $extend(dorado.widget.grid.SubControlCellRenderer,{
createSubControl: function(arg){
//创建单元格内部的DOM元素
return new dorado.widget.CheckBox({
caption: "A类"
});
},
refreshSubControl: function(button,arg){
//当渲染单元格时触发,在这个事件中可以通过arg.data获取当前的实体对象
}});
self.set("renderer",new CellRenderer());//最后设置名称为operation的DataColumn的渲染器为自定义的CellRenderer
*/
/*
var CellRenderer = $extend(dorado.widget.grid.SubControlCellRenderer, {
createSubControl : function(arg) {
//创建单元格内部的DOM元素
if (arg.data.rowType){
//arg.data代表当前的实体对象,可根据实体对象的值动态的调整下列内容的创建
return null;
}
//创建CheckBox
return new dorado.widget.Container(
{ "children":[
{ "$type":"CheckBox", "caption":"A类", "onValue":"A",
"listener":{
"onValueChange":function(self,arg){
//alert(self.get("value"));
}
}
},
{ "$type":"CheckBox", "caption":"B类","onValue":"B",
"listener":{
"onValueChange":function(self,arg){
//alert(self.get("value"));
}
}
},
{ "$type":"CheckBox", "caption":"C类","onValue":"C",
"listener":{
"onValueChange":function(self,arg){
//alert(self.get("value"));
}
}
} ],
"layout":{ "$type":"HBox" }, "height":30
});
},
//当渲染单元格时触发,在这个事件中可以通过arg.data获取当前的实体对象
refreshSubControl : function(container, arg) {
var entity = arg.data;//获取当前行对应的Entity对象
var checkboxs = container.get("children");
checkboxs.each(
function (checkbox){
var caption = checkbox.get("caption");//获取caption
}
);
}
});
self.set("renderer", new CellRenderer());
arg.processDefault=true;
*/
33.Label内容加粗
style添加font-weight=bold
34.鼠标指针
//获得鼠标的位置
var clientX = arg.event.clientX;
var clientY = arg.event.clientY;
//指定画中机关在指定区域内显示,否则隐藏
if ((clientY > 20) && (clientX > 300)) {
view.id("floatPanel1").set("visible",true);
view.id("floatPanel2").set("visible",true);
view.id("floatPanel3").set("visible",true);
}else {
view.id("floatPanel1").set("visible",false);
view.id("floatPanel2").set("visible",false);
view.id("floatPanel3").set("visible",false);
}
35.调用dom事件(onrefreshDom)
arg.dom.onmousemove = function(){
view.id("floatPanel1").set("visible",true);
view.id("floatPanel2").set("visible",true);
view.id("floatPanel3").set("visible",true);
}
arg.dom.onmouseout = function(){
view.id("floatPanel1").set("visible",false);
view.id("floatPanel2").set("visible",false);
view.id("floatPanel3").set("visible",false);
}
36.IFrame的内置对象
var windows = view.id("iframe1").get("iFrameWindow");
var container = windows.$id("containerA").objects[0];
dorado7常用内容的更多相关文章
- jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的:同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治 ...
- jQuery中的常用内容总结(三)
jQuery中的常用内容总结(三) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html 内容提要 选择器(第一节) 选择器的扩展方法(第一节) ...
- jQuery中的常用内容总结(二)
jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言 距离上次博客更新已经有二十来天了(●′ω`●) ...
- python基础(常用内容)
python基础(常用内容) 机器数: 一个数在计算机中的二进制表示形式就是机器数. 例如: +3用机器数表示就用<00000011>表示 -3用机器数表示就用<10000011&g ...
- selenium常用内容
一.声明浏览器对象 注意点一,Python文件名或者包名不要命名为selenium,会导致无法导入 from selenium import webdriver #webdriver可以认为是浏览器的 ...
- DedeCms常用内容调用标签实例大全
一.调用顶级栏目标签 <a href="{dede:global.cfg_cmsurl/}/" class="ahov">首页</a> ...
- pro文件常用内容
qmake生成的pro文件中常用变量 SUBDIRS 指定子目录 TARGET 指定生成的应用程序名(默认为项目名) DEPENDPATH 指定程序编译时依赖的相关路径 INCLUDEPATH 指定头 ...
- [skill][makefile] makefile 常用内容记录
其实,makefile有点复杂. 文档看了又看,还是要经常翻,做个记录备忘 :) 1. 隐含命令 implicit rules 与 implicit rule 相对应的有 pattern rules ...
- bootstrap框架:常用内容一
<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8&q ...
随机推荐
- 你的第一个接口测试:Python 接口测试
前言: 首先我们先明确一个概念,什么叫接口.什么叫接口测试? 接口的全称叫[Application Programming Interface 又叫API],是提供应用程序与开发人员基于某软件或硬件得 ...
- 【实用】巧用For xml 生成HTML代码
可以利用SQL的For xml直接生成HTML结构,比如我想生成如下结构: <li> <img src="..."/> <input type=&qu ...
- Appstate的几种状态及在android 和ios触发
AppState能告诉你当前应用是在前台还是在后台,或者处于切换应用的状态,并且能在状态变化的时候通知你. AppState 通常在处理推送通知的时候用来决定内容和对应的行为 一: App State ...
- Scrum立会报告+燃尽图(十月十八日总第九次):功能细化与数据库设计
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- c# Application.run和form.show区别
Application.run(form):在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见. form.show() :使指定窗体可见: 参照:https://blog.csdn.net/ ...
- C++:默认初始化
一.什么是默认初始化 默认初始化,顾名思义,即为在定义变量时如果没有为其指定初始化值,则该变量会被C++编译器赋予默认的值.而变量被赋予的默认值到底是什么,则取决于变量的数据类型和变量的定义位置. 二 ...
- HDU 4747 Mex 递推/线段树
题目链接: acm.hdu.edu.cn/showproblem.php?pid=4747 Mex Time Limit: 15000/5000 MS (Java/Others)Memory Limi ...
- 数组去重复及记录重复个数(以及遍历map的四种方法)
private static void check(String[] array) { // 字符串数组中,含有不重复的字符串有哪些?每一个重复的个数 Map<String,Integer> ...
- vue.js+vue-router+webpack keep-alive用法
本文是机遇 提纲: 现有需求 各个解决方案的优缺点 相关的问题延伸 keep-alive使用详解 现有需求 每个项目中都存在许多列表数据展示页面,而且通常包含一些筛选条件以及分页. 并 ...
- 【C++】深度探索C++对象模型读书笔记--构造函数语义学(The Semantics of constructors)(四)
成员们的初始化队伍(member Initia 有四种情况必须使用member initialization list: 1. 当初始化一个reference member时: 2. 当初始化一个co ...