解决方案 »
- 在线等,如何去除字符串中的转义符
- 求教Javascript代码实现一个页面多个窗口的功能
- 关于网站的replace问题(高分,全部家当)急!!
- 一个简单的问题
- deleterow()问题,请高手指教
- 今天提前下班没事干,谁想做什么效果赶快提(不会做可别怪!哈哈!)
- 动态追加表格行,求救!!!
- 高手们帮忙看一下这段程序,问题很菜,但我不知道怎么回事!请教
- 请各位大侠帮忙,如何在打开某一页面的时候,先打开一个密码对话框,让用户输入密码后在打开页面
- 如何获取iframe中跨域链接出来的元素
- 求牛人解密一段javascript代码,多谢
- 如何实现多个div下li标签,一次点击显示6个,各个div不冲突
{title:'完成进度',field:'finishProgress',width:60,
formatter:function(value){
var s ="";
for (var i = 0; i < progressData.length; i++) {
if (progressData[i].label == value) {
s += progressData[i].value+",";
}
}
return s;
/*var s="未开始";
if(value==0){
s="未开始";
}else if(value == 1){
s="执行中";
}else if(value == 2){
s='<span style="color:red">未完成</span>';
}else if(value == 3){
s='<span style="color:green">已完成</span>';
}
return s; */
},
editor: {
type: 'combobox',
options: {
required: true,
editable:false,//不可输入文本
multiple:true,//支持多选
valueField: 'label',
textField: 'value',
data: progressData
}
}
},
看看你html代码
s += progressData[i].value+",";
}
将if注释掉 看看
//endEdit该方法触发此事件
alert(rowData.finishProgress);
console.info(rowData);
editRow = undefined;
},
保存的时候,通过这个输出查看,发现alert(rowData.finishProgress);只输出了一个排在前面被选择的值
我写成这样
//combotree的扩展方法
jQuery.extend(jQuery.fn.datagrid.defaults.editors, {
combotree: {
init: function(container, options){
var editor = jQuery('<input type="text">').appendTo(container);
editor.combotree(options);
return editor;
},
destroy: function(target){
jQuery(target).combotree('destroy');
},
getValue: function(target){
var temp = jQuery(target).combotree('getValues');
alert(temp);
return temp.join(',');
},
setValue: function(target, value){
alert(value);//这里报错,说value undifinde
var temp = value.split(',');
alert(temp);
jQuery(target).combotree('setValues', temp);
},
resize: function(target, width){
jQuery(target).combotree('resize', width);
}
}
});
我想问一下那个value是什么数据?
好像原因是没写扩展方法,写了扩展方法之后那个value那里说没找到 是什么原因呢
好像原因是没写扩展方法,写了扩展方法之后那个value那里说没找到 是什么原因呢
不是
不用写扩展方法也能实现多选,你看看progressData是些什么数据?是否完整?
好像原因是没写扩展方法,写了扩展方法之后那个value那里说没找到 是什么原因呢
不是
不用写扩展方法也能实现多选,你看看progressData是些什么数据?是否完整?其实我是要做负责人那里的多选,这里是负责人那行的代码:
{title:'负责人',field:'teamgroup',width:150,
formatter:function(value,data,rec){
var result = "";
if(value!=null && value.length>0){
for(var i=0; i<value.length;i++){
for(var j=0; j<consultData.length;j++){
if(value[i]==consultData[j].value){
result += consultData[j].text + ",";
}
}
}
result = result.substring(0,result.lastIndexOf(","));
}
return result;
},
editor:
{
type: 'combotree',
options: {
required: true,
multiple:true,//支持多选
/*multiline:true,*/
/*url:root + '/worksplan/Workplan/ajaxQueryWorkplanRecord.do',*/
valueField: 'value',
textField: 'text',
data: consultData
}
}
},
然后这是我的consultData数据:
var consultData = [{value:'8afe888629b0d1050129b0dc060c0003',text:'王艳红'},
{value:'E9A36C7F59804B629208178FFF575890',text:'谭小花'},
{value:'282889aa2fddd008012fddd1b3c40002',text:'张亮'}];
http://www.jeasyui.com/demo/main/index.php?plugin=ComboBox&theme=default&dir=ltr&pitem=
combotree有个文件夹图标 ,不太好看。
显示多选数据,跟我刚刚发的图片那种情况一样的,一点保存就没了那要看看你的保存的方法是怎么写的保存的时候直接获取那一行啊,我原来已经后台添加好的负责人,如果不改变,只编辑其他的值,比如时限要求那些,就能正常修改,正常获取到负责人,但是只要修改负责人,点击保存就是获取不到负责人的ID{ text: '保存', iconCls: 'icon-save', handler: function () {
//保存时结束当前编辑的行,自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台
datagrid.datagrid("endEdit", editRow);
if (datagrid.datagrid('getChanges').length) {
var updated = datagrid.datagrid('getChanges',"updated");
var inserted = datagrid.datagrid('getChanges',"inserted");
var deleted = datagrid.datagrid('getChanges', "deleted");
var effectRow = new Object();
if (inserted.length) {
effectRow["inserted"] = JSON.stringify(inserted);
}
if (deleted.length) {
effectRow["deleted"] = JSON.stringify(deleted);
}
if (updated.length) {
effectRow["updated"] = JSON.stringify(updated);
}
alert(effectRow);
var loadurl = root + '/worksplan/Workplan/saveProject.do?workTypeID='+workTypeID;
$.post(loadurl, effectRow, function(rsp) {
$.messager.alert("提示", "提交成功!");
datagrid.datagrid('acceptChanges');
}, "JSON").error(function() {
$.messager.alert("提示", "提交错误了!");
});
}
}
}
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6b84915e388fc21484642c101a39fef97a635619d7c26b6776f50f03b4e4732f77552fe0c889c30d86ac925979db6167255cdd1705d368fe9619759c70cd10feaf68f0caf425e4acc5a5dc4320c9&p=9e759a46d0c018eb0dbe9b7c4d5985&newp=8b2a971bc78711a05beb9739155785231610db2151d1d51221c5d7&user=baidu&fm=sc&query=easyui+datagrid+combobox+%B6%E0%D1%A1&qid=9afdb19d00005ac9&p1=1
我按他的方法加了扩展函数(请问扩展函数加在任意位置就可以吗?),但是报错说value is undifinde
$.extend($.fn.datagrid.defaults.editors.combobox, {
getValue : function(jq) {
var opts = $(jq).combobox('options');
if(opts.multiple){
var values = $(jq).combobox('getValues');
if(values.length>0){
if(values[0]==''||values[0]==' '){
return values.join(',').substring(1);//新增的时候会把空白当成一个值了,去掉
}
}
return values.join(',');
}
else
return $(jq).combobox("getValue");
},
setValue : function(jq, value) {
var opts = $(jq).combobox('options');
if(opts.multiple&&value.indexOf(opts.separator)!=-1){//这里的value没找到 报错
var values = value.split(opts.separator);
$(jq).combobox("setValues", values);
}
else
$(jq).combobox("setValue", value);
}
});
我按他的方法加了扩展函数(请问扩展函数加在任意位置就可以吗?),但是报错说value is undifinde
$.extend($.fn.datagrid.defaults.editors.combobox, {
getValue : function(jq) {
var opts = $(jq).combobox('options');
if(opts.multiple){
var values = $(jq).combobox('getValues');
if(values.length>0){
if(values[0]==''||values[0]==' '){
return values.join(',').substring(1);//新增的时候会把空白当成一个值了,去掉
}
}
return values.join(',');
}
else
return $(jq).combobox("getValue");
},
setValue : function(jq, value) {
var opts = $(jq).combobox('options');
if(opts.multiple&&value.indexOf(opts.separator)!=-1){//这里的value没找到 报错
var values = value.split(opts.separator);
$(jq).combobox("setValues", values);
}
else
$(jq).combobox("setValue", value);
}
});
这个是多选了 但是只能保存一个值的问题。
你现在能获取到了值,而不是空或者undefined?