DataGrid关于button的相关操作
2011-11-23 16:24
232 查看
这两天做相关设计,需要使用grid,遇到一些问题,解决了,把经验写下来,与大家共勉!
实现目标内容会根据引入数据不同而出现不同的button,发现当直接写入value:<button></button>这种形式时,grid.cell会直接将起解释为文本,而不会翻译为html语言,查找资料后,引入formatter可以解决这个问题,使用formatter调用函数,在函数里定义一个包含button的string语句,return这个str,就可以在表格里动态生成相应的button。
不过在button动态点击后,弹出dialog,发现执行一次后,点击button无法在关联相应事件,使用很多方法后都无效。因为对button事件动态处理需要当前button下item,使用dojo.query链接事件时可以满足条件,但成功执行后无法再次关联事件,是这种方法不可取。而之前<input Onclick>方式却无法动态获得当前button的item。这种矛盾使程序一度陷入僵局(当然前提是使用datagrid)。最后查找资料,发现forrmate:function的调用方式传入参数可以有两个,当直接些formatter:fun1时,fun1(datum)中datum仅为field的值,但formatter:this.fun1时,fun1(item,datum),item为行号,使用getitem(item)可获得当前操作对象,datum仍未datum的值,可解决之前遇到的问题。
再给大家贴一下常用的griddata操作符:useGrid = new dojox.grid.DataGrid({【目标store】},‘id’);
useGrid._arrayOfTopLevelItems:得到所有的item
widget.selection.getSelected():得到选中情况下的item具体操作: var items = usermanagerGrid.selection.getSelected();
if (items.length) {
dojo.forEach(items, function(selectedItem) {
if (selectedItem !== null) {
//alert(selectedItem.text);
//
var deleteid = usermanagerGrid.store.getValues(selectedItem, "id");
deletemysql(deleteid);
ukeymanagerGrid.store.setValue(selectedItem,'fieldname',newvalue);//改变某个item中cell的值
useGrid.store.newItem(newItem);//添加信item
useGridStore.deleteItem(selectedItem);//删除item
}
});
}
//着下面是对formatter条用函数的引用
function func1(datum,item){
if(datum==值)
{
//var str="<button class='info' >create</button>"; //这是旧的方式
var str="<input type='button' value='create' onclick='new function(){createdialog("+item+");}'>";//可连续调用的方式
return str;
}
}
这算是主要的问题点,记下来,下次再遇到就能解决为题了!
实现目标内容会根据引入数据不同而出现不同的button,发现当直接写入value:<button></button>这种形式时,grid.cell会直接将起解释为文本,而不会翻译为html语言,查找资料后,引入formatter可以解决这个问题,使用formatter调用函数,在函数里定义一个包含button的string语句,return这个str,就可以在表格里动态生成相应的button。
不过在button动态点击后,弹出dialog,发现执行一次后,点击button无法在关联相应事件,使用很多方法后都无效。因为对button事件动态处理需要当前button下item,使用dojo.query链接事件时可以满足条件,但成功执行后无法再次关联事件,是这种方法不可取。而之前<input Onclick>方式却无法动态获得当前button的item。这种矛盾使程序一度陷入僵局(当然前提是使用datagrid)。最后查找资料,发现forrmate:function的调用方式传入参数可以有两个,当直接些formatter:fun1时,fun1(datum)中datum仅为field的值,但formatter:this.fun1时,fun1(item,datum),item为行号,使用getitem(item)可获得当前操作对象,datum仍未datum的值,可解决之前遇到的问题。
再给大家贴一下常用的griddata操作符:useGrid = new dojox.grid.DataGrid({【目标store】},‘id’);
useGrid._arrayOfTopLevelItems:得到所有的item
widget.selection.getSelected():得到选中情况下的item具体操作: var items = usermanagerGrid.selection.getSelected();
if (items.length) {
dojo.forEach(items, function(selectedItem) {
if (selectedItem !== null) {
//alert(selectedItem.text);
//
var deleteid = usermanagerGrid.store.getValues(selectedItem, "id");
deletemysql(deleteid);
ukeymanagerGrid.store.setValue(selectedItem,'fieldname',newvalue);//改变某个item中cell的值
useGrid.store.newItem(newItem);//添加信item
useGridStore.deleteItem(selectedItem);//删除item
}
});
}
//着下面是对formatter条用函数的引用
function func1(datum,item){
if(datum==值)
{
//var str="<button class='info' >create</button>"; //这是旧的方式
var str="<input type='button' value='create' onclick='new function(){createdialog("+item+");}'>";//可连续调用的方式
return str;
}
}
这算是主要的问题点,记下来,下次再遇到就能解决为题了!
相关文章推荐
- 关于excel表格数据处理及导入oracle数据库相关操作
- 今天发了这么多,大家支持一下明天在继续发关于LINQ和3.5Extensions相关的操作...
- js 关于checkbox相关操作
- Liunx下的有关于tomcat的相关操作 && Liunx 常用指令
- 关于锚点跳转及jQuery下相关操作与插件
- Swift中关于字符串的相关操作
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 关于.Net操作XML相关类
- 关于数据库的相关操作
- 关于日期的js相关操作
- 关于Button点击两次才响应事件相关问题
- 关于Linux中的apt-get的相关操作及原理
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- 关于锚点跳转及jQuery下相关操作与插件
- 关于迭代器的相关基础操作
- 关于MYSQL 表相关的操作
- 关于mybatis批量更新操作的相关注意事项
- 关于MSHFlexGrid控件的相关操作
- Activity中关于目录操作的相关方法
- 关于freemarker操作word的相关问题