【问题标题】:How to customise event adding with dx-scheduler/angularjs如何使用 dx-scheduler/angularjs 自定义事件添加
【发布时间】:2020-12-30 13:59:39
【问题描述】:

我正在使用 dx-scheduler,我想调整添加事件表单。在This Example 我添加了 2 个下拉菜单,优先级和类型,我想知道如何将它们的位置更改为在描述之前,如图所示。

这是我添加资源的方式:

*我想知道他们是否可以定义订单

  resources: [{
            fieldExpr: "priorityId",
            allowMultiple: false,
            dataSource: priorityData,
            label: "Priority",
             //order:3,
        }, {
            fieldExpr: "typeId",
            allowMultiple: false,
            dataSource: typeData,
            label: "Type",
            //order:4,
        }]

这是标记

 <div dx-scheduler="options", dx-item-alias="data">
            <div data-options="dxTemplate:{name:'dateCellTemplate'}">

            </div>            
        </div>

【问题讨论】:

  • 我在这里看到了怎么做:js.devexpress.com/Demos/WidgetsGallery/Demo/Scheduler/… 但是你使用的是哪个版本的 Angular?文档显示了 Angular 2+ 方法,但在您的演示中您使用的是 1.x。
  • 我正在使用 AngularJS (angular 1.7 ~),不幸的是你的例子不是我所要求的......我希望能够订购我当前的模板......我已经定制了它...
  • @RoyBarOn 你检查我下面的答案了吗?

标签: angularjs devextreme


【解决方案1】:

唯一的方法是为您的表单 (example from documentation) 做一个自定义模板,通过覆盖实现 onAppointmentFormOpening 函数的表单选项项目,下面是一个示例,我尝试重新排序项目以满足您的需求。

工作link

$scope.options = {
    timeZone: "America/Los_Angeles",
    height: 600,
    dataSource: [],
    showAllDayPanel: false,
    views: ["month"],
    currentView: "month",
    currentDate: new Date(2021, 4, 25),
    startDayHour: 7,
    endDayHour: 23,
    resources: [{
        fieldExpr: "priorityId",
        allowMultiple: false,
        dataSource: priorityData,
        label: "Priority"
    }, {
        fieldExpr: "typeId",
        allowMultiple: false,
        dataSource: typeData,
        label: "Type"
    }],
    onAppointmentFormOpening: function(data) {
        var form = data.form;
      
      var items = form.option("items");
      var updatedItems = [];
      var descriptionItem = {};
      for (var i in items) {
        var itemGroup = items[i];
        if(itemGroup.name === "mainGroup") {

          for (var j in itemGroup.items) {
          var innerItem = itemGroup.items[j];
          
              if(innerItem.dataField !="description") {
                updatedItems.push(innerItem);
              }
              else {
                descriptionItem = innerItem;
              }
          }
          updatedItems.push(descriptionItem);
          itemGroup.items = updatedItems;
        }
      }
      
       form.option("items",items);
       console.log(form.option("items"));
         
    }
};

【讨论】:

  • 谢谢哥们 - 我熟悉你建议的方法,这就是为什么我要求一个特定的解决方案来重新排序 2 个字段....我不想去这个到目前为止并重新创建整个表格只是为了进行微小的更改....所以感谢您的时间 - 我感谢您的努力 - 但是这不是我所要求的解决方案 - 所以请原谅我不接受它作为答案 - 但是 -我确实将其标记为有用 - 无论如何谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2021-05-21
  • 2017-03-21
  • 1970-01-01
相关资源
最近更新 更多