【问题标题】:Separate Kendo Scheduler Editor Templates单独的 Kendo 调度程序编辑器模板
【发布时间】:2014-02-25 01:10:39
【问题描述】:

我能否根据条件加载自定义模板?

例如..

如果我正在为机械师进行预订,那么编辑器表单将显示汽车型号、年份等的文本框。

如果我要预订地毯清洁剂,编辑器表单会显示多少个房间、房间大小等文本框。

我能否传递服务的 ID 并显示正确服务的特定编辑器表单?

如果我们创建不同的调度程序视图,我们目前可以显示此功能,但这会创建许多页面的重复。

【问题讨论】:

  • 你能想出解决这个问题的办法吗?可以分享一下吗?
  • 不,我没有,但我确实通过在下一页上动态添加文本框找到了解决方法。似乎不可能在运行时为调度程序选择视图模型

标签: templates kendo-ui scheduler


【解决方案1】:

我遇到了完全相同的问题,经过长时间的搜索并结合我的发现,我来到了这个:

1) 在我的调度程序上方我有一个 kendodropdownlist

<input id="reservationPicker" />
<script>
$("#reservationPicker").kendoDropDownList({
    dataTextField: "name",
    dataValueField: "reservationDefTypeId",
    dataSource: reservationPickerDataSource
});
</script>

2) 我的活动有一个额外的字段 reservationDef,它将保存下拉列表的信息。

3) 我可以在我的模板中使用这些信息

<script id="editorScheduler" type="text/x-kendo-template">
<center>
    <div id="main">
        #if(reservationDef=="mechanic"){#
            <h3>Mechanic stuff</h3>
        #}else if(reservationDef=="carpetCleaner"){#
            <h3>Carpet Cleaner stuff</h3>
        #}else{#
            <h3>unknown type of reservation !</h3>
            #: reservationDef #
        #}#
    </div>
</center>
</script>

4) 我在调度程序中使用此模板

editable: {
template: $("#editorScheduler").html()
},

5) 但是新的约会呢!我用了调度器的add事件,我在事件里填了这个信息

add: function (e) {
var reservationTypes = $("#reservationPicker").data("kendoDropDownList");
var selectedReservationType = reservationTypes.dataItem();
e.event.reservationDef = selectedReservationType.appointmentTitle;
},

这对我有用。祝你好运!

【讨论】:

  • 那是好东西。如果我没看错,您将要预约“地毯清洁工/技工”?? .. 因此,当您打算将编辑器字段保存到数据库中时,需要检查字段的分离。假设地毯清洁工需要知道房间大小和数量或房间,但技工需要收集汽车型号和发动机尺寸......视图模型将是巨大的,以尝试补偿给定类别/子类别的所有必需字段..然后为了保存额外的表字段,将有一个包含许多行的大表。否则将数据保存到 Title 行。
【解决方案2】:

不,我没有,但我确实通过在下一页上动态添加文本框找到了解决方法。似乎不可能在运行时为调度程序选择视图模型

如果有人知道如何在运行时使用 mvc 加载特定的视图模型,那么对于未来的想法和开发来说将会非常有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多