【问题标题】:Use MVC wrapper in Kendo Scheduler在 Kendo Scheduler 中使用 MVC 包装器
【发布时间】:2014-05-02 04:41:51
【问题描述】:

我想在我的 kendo 调度器调度器中使用 Kendo MVC Wrapper for Parameter Map,

目前我在文档加载完成后将 ParameterMap 用于 Javascript 函数:

  $(document).ready(function () {

            $("#scheduler").data("kendoScheduler").dataSource.transport.parameterMap = function (options, operation) {
            var scheduler = $("#scheduler").data("kendoScheduler");
            if (operation === "read") {
                var result = {
                    start: scheduler.view().startDate().toISOString(),
                    end: scheduler.view().endDate().toISOString()
                }
                return result;
            }
        };

    })

但我想为 Kendo Scheduler 使用 MVC Wrapper。 有可能吗?

【问题讨论】:

    标签: javascript asp.net-mvc kendo-ui kendo-asp.net-mvc kendo-scheduler


    【解决方案1】:

    MVC Wrapper 不允许您指定 parameterMap,它使用不应更改的预定义 parameterMap。而是考虑通过读取配置的数据函数发送额外的参数。

    【讨论】:

      【解决方案2】:

      你可以试试这个方法:

      parameterMap: function (options, operation, data) {
                        if (operation === "read") {
                            return  models: kendo.stringify(options.models);
                       }
                   }
      

      在控制器端

      public virtual JsonResult SomeMethod([DataSourceRequest] DataSourceRequest request)
      {
          /*
              Your logic goes here
          */
          return Json(returnValue.ToDataSourceResult(request));
      }
      

      【讨论】:

        【解决方案3】:

        举例说明上面给出的答案:

         Read(read => read.Action("Read", "Calendar").Data("getAdditionalData"))
        

        以及您想要实现的 Javascript 功能:

        function getAdditionalData() {
            var scheduler = $("#scheduler").data("kendoScheduler");
        
            var timezone = scheduler.options.timezone;
            var startDate = kendo.timezone.convert(scheduler.view().startDate(), timezone, "Etc/UTC");
            var endDate = kendo.timezone.convert(scheduler.view().endDate(), timezone, "Etc/UTC");
        
            var result = {
                Start: new Date(startDate.getTime() - (startDate.getTimezoneOffset() * kendo.date.MS_PER_MINUTE)),
                End: new Date(endDate.getTime() - (endDate.getTimezoneOffset() * kendo.date.MS_PER_MINUTE) + kendo.date.MS_PER_DAY)
            }
        
            return result;
        }
        

        【讨论】:

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