Jqgrid和jqxeditor集成

Jqgrid和jqxeditor集成,jqgrid,Jqgrid,我正在尝试将jqx编辑器与jqgrid集成。它对于行编辑部分(get操作符)工作正常,但是对于添加部分(set操作符)我仍然有问题。对话框窗口显示编辑器,但我不知道如何从jqxeditor获取数据。 在这种情况下,我应该如何实现自定义_值函数(文本字段)? 谢谢 $Notegrid.jqGrid({ url:al.rooturl+后缀, 数据类型:“json”, mtype:“POST”, loadonce:false, 奥尔特罗斯:错, colNames:[“ID”、“Note”、“Liéeá

我正在尝试将jqx编辑器与jqgrid集成。它对于行编辑部分(get操作符)工作正常,但是对于添加部分(set操作符)我仍然有问题。对话框窗口显示编辑器,但我不知道如何从jqxeditor获取数据。 在这种情况下,我应该如何实现自定义_值函数(文本字段)? 谢谢

$Notegrid.jqGrid({
url:al.rooturl+后缀,
数据类型:“json”,
mtype:“POST”,
loadonce:false,
奥尔特罗斯:错,
colNames:[“ID”、“Note”、“Liéeá”、“Actions”],
colModel:[
{name:“id”,index:“id”,width:80,align:“center”,sorttype:“int”},
{名称:“文本”,索引:“文本”,可编辑:真,编辑类型:“自定义”,编辑选项:{
自定义元素:函数(值、选项){
elm=$('');
//给编辑器时间初始化
setTimeout(函数(){
elm.jqxEditor({
工具:“粗体斜体下划线大小”,
宽度:“100%”,
身高:“100%”
});
elm.val(价值);
}, 100
);
返回榆树;
},
自定义_值:函数(元素、操作、gridval){
如果(操作=='set'){
//如何设置数据?
}否则{
if(oper=='get'){
返回元素。jqxEditor('val');
}
}
}},宽度:500,格式化程序:formatText},。。。

我不知道
jqxEditor
,但调试您的演示时显示编辑可以工作,但保存的文本包含双文本。要解决此问题,您可以尝试使用

返回元素.jqxEditor('val')[0];
而不是

返回元素.jqxEditor('val');

更新:我现在更好地理解了您的问题。首先,您尝试使用本地数据的表单编辑,这在jqGrid 4.6中是不受支持的。它从4.7版本开始在jqGrid中实现。下一个问题是如何使用在
自定义_元素中创建的
div
,用于
jqxEditor
问题如下:必须创建一个DOM元素并返回它(或者像您一样返回它上的jQuery包装器)从
custom\u元素
回调。jqGrid然后将
id
name
分配给元素。因此在
custom\u元素
回调的实现中分配
id
不是必需的。表单编辑中的问题是
jqxEditor
似乎覆盖了属性。作为解决方法我建议创建额外的外部
以及转发到
jqxEditor
的主
。相应的代码将

自定义元素:函数(值、选项){
var elm=$(“”);
//给编辑器时间初始化
setTimeout(函数(){
elm.children(“div”).jqxEditor({
工具:“粗体斜体下划线大小”,
宽度:“100%”,
高度:“100px”
});
elm.children(“div”).val(价值);
}, 100);
返回榆树;
},
自定义_值:函数(元素、操作、gridval){
如果(操作=='set'){
//如何设置数据?
}否则{
if(oper=='get'){
返回元素.children(“div”).jqxEditor(“val”);
}
}
}

相应的演示似乎可以正常工作。我在演示中使用了免费jqGrid的最新版本(4.9.2)。它支持本地数据的表单编辑。演示可以看到内联和表单编辑,并且两者似乎都可以正常工作。

您能提供演示吗(例如JSFIDLE演示)哪个可以用来重现问题?演示应该使用jqGrid的非最小化版本:
jquery.jqGrid.src.js
,而不是
jquery.jqGrid.min.js
。如果可以调试代码,那么就可以很容易地找到问题的答案。顺便说一下,演示:以及我为之创建的(请参阅对答案的许多评论)演示编辑器的用法,该编辑器的功能与jqxEditor非常接近。谢谢!我已经尝试使用tinymce和您在上一个答案中提供的相同代码,但有时会与加载在同一页面(在其他选项卡中)的其他tinymce实例发生冲突。jqgrid中的一个运行良好,但其他的启动时没有出现此错误:TypeError:p不是构造函数/TinyMCE/TinyMCE/jscript/tiny_mce/tiny_mce.js Ligne:1这里是fiddle示例:感谢您的修复!我的主要问题是自定义_value函数中的“set”部分。当您单击“+”时按钮添加新行,您提交时,数据不会被收集。有什么想法吗?@Bibou:不客气!添加问题的原因是什么按钮:在jqGrid 4.6中,您使用表单编辑添加按钮,该按钮不支持编辑本地数据。您可以在
navGrid
中使用
Add:false
,然后调用
inlineNav
添加使用内联编辑的添加按钮。它应该可以工作。@Bibou:有关更多信息和工作演示,请参阅我答案的更新部分。
$Notegrid.jqGrid({
        url: al.rooturl + suffix,
        datatype: "json",
        mtype: "POST",
        loadonce: false,
        altRows: false,
        colNames: ["ID", "Note","Liée à","Actions"],
        colModel: [
            { name: "id", index: "id", width: 80, align: "center",sorttype: "int" },
            { name: "text", index: "text",editable: true, edittype:"custom", editoptions:{
                    custom_element:function( value, options) {
                        elm = $('<div id="'+options.id+'"></div>');                         
                        // give the editor time to initialize
                        setTimeout( function() {
                            elm.jqxEditor({ 
                                tools: 'bold italic underline size', 
                                width: '100%', 
                                height: '100%'
                            });
                            elm.val( value );
                            }, 100
                        );

                        return elm;
                    },
                    custom_value:function( element, oper, gridval) {    
                        if(oper === 'set'){
                            // how to set the data ?
                        }else{
                            if(oper === 'get') {
                                return element.jqxEditor('val');
                            }
                    }

                    }}, width: 500, formatter: formatText },...