控制dhtmlx调度程序的流程,用于通过自定义字段保存数据

时间:2014-01-21 10:40:37

标签: calendar dhtmlx-scheduler

我在dhtmlschedular.js中添加了自定义文本字段,但

我无法追踪路径。我的自定义字段值如何在控制器上运行。

或完整的dhtmlx流程,用于将数据保存到db。

我到目前为止: - 灯箱: {         部分:[             {name:“description”,height:200,map_to:“text”,type:“textarea”,focus:true},                                                                            ]},             {name:“prabhu”,身高:200,map_to:“txt1”,输入:“dhiraj”},             {name:“time”,height:72,type:“time”,map_to:“auto”}

dhiraj: {
    render:function(sns){
        return "<div class='dhx_cal_ltext' style='height:60px;'>Text&nbsp;<input id='txt1' name='txt1' type='text'><br/>Details&nbsp;<input id='calendarDetailId' name='txt2' type='text'></div>";
    },
    set_value:function(node,value,ev){
        node.childNodes[1].value=value||"";
        node.childNodes[4].value=ev.details||"";
    },
    get_value:function(node,ev){
        ev.location = node.childNodes[4].value;
        return node.childNodes[1].value;
    },
    focus:function(node){
        var a=node.childNodes[1]; a.select(); a.focus(); 
    }
}

};

1 个答案:

答案 0 :(得分:0)

您可以添加自定义字段而无需修改组件的来源(我建议不要在可能的情况下修改它们)

如果您需要在详细信息表单中添加其他控件,则可以覆盖 scheduler.configuration.lightbox.sections 对象(在您的页面/脚本文件中,而不是在源代码中)

&#39; map_to&#39; 属性定义要映射到输入的数据对象(事件)的属性。 如果控件应映射到多个字段,则可以使用 map_to:&#34; auto&#34; 并手动从事件对象中检索所需的字段。

您网页上的代码可能如下所示:

//defining a control
scheduler.form_blocks["dhiraj"]={
    render:function(sns){
        return "<div class='dhx_cal_ltext' style='height:60px;'>" +
                "Text&nbsp;<input id='txt1' name='txt1' type='text'><br/>" +
                "Details&nbsp;<input id='calendarDetailId' name='txt2' type='text'>" +
                "</div>";
    },
    set_value:function(node,value,ev){
        //get values from event manually
        node.childNodes[1].value = ev.txt1 || "";
        node.childNodes[4].value = ev.txt2 || "";
    },
    get_value:function(node,ev){
        //assign values to event object
        ev.txt1 = node.childNodes[1].value;
        ev.txt2 = node.childNodes[4].value;
    },
    focus:function(node){
        var a=node.childNodes[1]; a.select(); a.focus();
    }
};

//add control to the details form
scheduler.locale.labels.section_prabhu = "";//labels for inputs are defined as 'seciton_'+inputName
scheduler.config.lightbox.sections = [
    {name:"description", height:200, map_to:"text", type:"textarea" , focus:true},
    {name:"prabhu", height:200, map_to:"auto", type:"dhiraj"},//here it is
    {name:"time", height:72, type:"time", map_to:"auto"}
];

//init scheduler after control is defined
scheduler.init('scheduler_here',new Date(),"week");

新输入会显示&#39; txt1 &#39;和&#39; txt2 &#39;属性,可以在定义中看到。保存更改后,组件会将所有事件值发送到服务器。自定义值也将被发送。

根据您在服务器端处理更新的方式,您应该将自定义字段添加到 dhtmlxConnector 的配置中,或者从GET / POST参数中检索它们。

http://docs.dhtmlx.com/scheduler/lightbox_editors.html http://docs.dhtmlx.com/scheduler/custom_lightbox_editor.html