A respeito de um projeto que estou desenvolvendo com foco no widget Scheduler, gostaria de saber se é possível atingir a seguinte funcionalidade:
Com meu Scheduler atual, posso trazer os valores de minha startDate e endDate conforme o esperado, no entanto, não estou conseguindo ver minha janela pop-up com os valores de meus recursos, o que significa que tenho que fazer um clique extra dentro da janela pop-up para escolher o valor que desejo.
Aqui está um snippet de código do meu script:
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());
},
Temos uma solução para esse problema, então aqui vai:
Como estou configurando a fonte manualmente, isso significa que ela está vazia durante a tentativa do widget de definir seu valor. Esperançosamente, ele não seleciona nada porque está vazio e então, quando a fonte é definida, não há código que reaplicará o valor;
A solução para este caso é selecionar os valores manualmente. Basicamente, no evento de edição, como a instância e.event está preenchida corretamente, é possível utilizar diretamente o valor e.event.UserID.
Tive que criar uma nova variável e chamar seu valor abaixo da linha que obtém todas as fontes de dados para o kendoMultiSelect:
var UtilizadorIDsender = e.event.UtilizadorID[0];
var UtilizadorID = e.container.find ("# selectColaborador"). kendoMultiSelect ({dataTextField: "Nome", dataValueField: "ID"}). data ("kendoMultiSelect"); UserID.dataSource.data (e.sender.resources [0] .dataSource.data ()); $ ("# selectColaborador"). getKendoMultiSelect (). value (UtilizadorIDsender);
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras