【问题标题】:How to pre-select the resource values on a kendoScheduler pop-up window?如何在 kendoScheduler 弹出窗口中预选资源值?
【发布时间】:2015-11-26 11:14:42
【问题描述】:

关于我正在开发的一个专注于调度程序小部件的项目,我想知道它是否可以实现以下功能:

screencast

使用我当前的调度程序,我可以按预期带来我的 startDate 和 endDate 的值,但是,我无法看到我的资源值的弹出窗口,这意味着,我必须让在弹出窗口中额外单击以选择我想要的值。

这是我脚本中的代码 sn-p:

        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());

    },

【问题讨论】:

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


    【解决方案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

    【讨论】:

      【解决方案2】:

      找到了解决这个问题的办法,就这样吧:

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

      • 这种情况的解决方案是手动选择值。基本上,在编辑事件中,由于 e.event 实例被正确填充,可以直接使用 e.event.UserID 值。

      • 我必须创建一个新变量并在获取 kendoMultiSelect 的所有数据源的行下方调用它的值:

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

        var UtilizadorID = e.container.find("#selectColaborador").kendoMultiSelect({ dataTextField: "名称", 数据值字段:“ID” }).data("kendoMultiSelect"); UtilizadorID.dataSource.data(e.sender.resources[0].dataSource.data()); $("#selectColaborador").getKendoMultiSelect().value(UtilizadorIDsender);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多