如何在kendoScheduler弹出窗口中预先选择资源值?

时间:2015-11-26 11:14:43

标签: javascript kendo-ui kendo-scheduler kendo-datasource kendo-multiselect

关于我正在开发的关注Scheduler小部件的项目,我想知道它可以实现以下功能:

screencast

使用我当前的Scheduler,我可以按预期显示startDate和endDate的值,但是,我无法看到我的弹出窗口中包含我的资源值,这意味着,我必须制作在弹出窗口中单击一下以选择我想要的值。

以下是我脚本中的代码段:

        group: {
        resources: ["Colaboradores"],
        orientation: "vertical"
    },

    resources: [{
        field: "UtilizadorID",
        name: "Colaboradores",
        dataTextField: "Nome",
        dataValueField: "ID",
        dataSource: new kendo.data.DataSource({
                transport: {
                    read: {
                        url: './../Services/HCAnestesiaWeb-AnestesiaDomainService.svc/JSON/GetColaboradores'
                    }
                },
                schema: {
                    type: "json",
                    data: "GetColaboradoresResult.RootResults",
                    total: "GetColaboradoresResult.TotalCount"
                }
            }
        ),
        multiple: true,
        title: "nome"
    },
    {
        field: "TipoEstado",
        dataValueField: "TipoDeEstadoID",
        dataTextField: "descr",
        dataColorField: "Cor",
        /*dataStartDateField: "startHour",
        dataEndDateField: "endHour",*/
        dataSource: new kendo.data.DataSource({
            transport: {
                read: {
                    url: './../Services/HCAnestesiaWeb-AnestesiaDomainService.svc/JSON/GetTiposEstados'
                }
            },
            schema: {
                type: "json",
                data: "GetTiposEstadosResult.RootResults",
                total: "GetTiposEstadosResult.TotalCount"
            }
        })
    }],

    // FRONT-END:
    edit: function(e) {

        var UtilizadorID = e.container.find("#selectColaborador").kendoMultiSelect({
            /*optionLabel: "Seleccionar...",*/
            dataTextField: "Nome",
            dataValueField: "ID"
        }).data("kendoMultiSelect");
        UtilizadorID.dataSource.data(e.sender.resources[0].dataSource.data());

        var utilizador = e.container.find("#selectColaborador").data("kendoMultiSelect");

        var TipoEstado = e.container.find("#selectEstado").kendoMultiSelect({
            /*optionLabel: "Seleccionar...",*/
            dataTextField: "descr",
            dataValueField: "TipoDeEstadoID",
            dataColorField: "Cor",
            template: '<div style="background-color: #:Cor#; border-radius: 10px; height: 30px; width: 30px; float: left"></div><div>#:descr#</div>'
        }).data("kendoMultiSelect");
        TipoEstado.dataSource.data(e.sender.resources[1].dataSource.data());

        // $("#dataInicio").val(e.event.start);
        // $("#dataFim").val(e.event.ID);
        // $("#data").val(e.event.UtilizadorID);
        console.log(e.event);
        /*var dataInicio = e.container.find("#dataInicio").data("kendoDropDownList");*/
        // dataInicio.dataSource.data(e.sender.resources[0].dataSource.data());

        /*var dataFim = e.container.find("#dataFim").data("kendoDropDownList");*/
        // dataFim.dataSource.data(e.sender.resources[0].dataSource.data());

    },

2 个答案:

答案 0 :(得分:1)

在编辑功能内的多选定义中,您可以设置所选的值,如下所示:

var UtilizadorID = e.container.find("#selectColaborador").kendoMultiSelect({
            dataTextField: "Nome",
            dataValueField: "ID",
            value: ["1", "3"] // here you set the selected value(s)
        }).data("kendoMultiSelect");

您必须找到所需的资源ID并将其放在那里。

这是JSBin

答案 1 :(得分:0)

为这个问题找到了解决方案,所以,请点击这里:

  • 当我手动设置源时,这意味着在窗口小部件尝试设置其值时它是空的。期望它不会选择任何东西,因为它是空的,然后,当设置源时,没有代码会重新应用该值;

  • 此案例的解决方案是手动选择值。基本上,在edit事件中,当正确填充e.event实例时,可以直接使用e.event.UserID值。

  • 我必须创建一个新变量并将其值调用到获取kendoMultiSelect的所有数据源的行下面:

    var UtilizadorIDsender = e.event.UtilizadorID [0];

    var UtilizadorID = e.container.find(“#selectColaborador”)。kendoMultiSelect({     dataTextField:“Nome”,     dataValueField:“ID” })的数据( “kendoMultiSelect”); UtilizadorID.dataSource.data(e.sender.resources [0] .dataSource.data()); $( “#selectColaborador”)getKendoMultiSelect()值(UtilizadorIDsender);