首页 > 解决方案 > 有没有办法在 bootstrap-datetimepicker 中禁用月份/视图模式按钮?

问题描述

我已经将引导程序从版本 3 更新到了 4,并注意到在使用 js 而不是 cshtml 创建日历时日历是重叠的。无需返回超过几天,因此我想禁用将查看模式更改为几个月或几年的月份按钮。是否有我需要的特定 CSS 属性,或者我需要在库中编辑代码?

视图模式正常

视图模式重叠

function AddDateTimeControl(parent, control, rowIndex, controlIndex) {
    var dateTimeID = "datetimepicker" + controlIndex;

    var tooltipDiv = CreateTooltipDiv();
    var tooltipSpan = CreateTooltipSpan(control.ToolTip);
    var label = CreateControlLabel(control);
    //var icon = CreateIcon('fa-calendar');
    var icon = CreateIcon("calendar-alt-regular");

    tooltipDiv.appendChild(label);
    tooltipDiv.appendChild(icon);
    tooltipDiv.appendChild(tooltipSpan);

    var dateDiv = document.createElement("div");
    dateDiv.classList.add('input-group');
    dateDiv.classList.add('date');
    dateDiv.classList.add('date-time-control');
    dateDiv.style.color = "black";
    dateDiv.id = dateTimeID;

    var dateTextBox = document.createElement("input");
    dateTextBox.type = "text";
    dateTextBox.classList.add("form-control");
    dateTextBox.value = control.RawValues[0];

    MarkElementForSerialization(dateTextBox, rowIndex, control.ID, 0);

    var calControlSpan = document.createElement("span");
    calControlSpan.classList.add('input-group-append'); //input-group-addon?
    //span -> fa-calendar?

    dateDiv.appendChild(dateTextBox);
    dateDiv.appendChild(calControlSpan); //input-group-addon

    parent.appendChild(tooltipDiv);
    parent.appendChild(dateDiv);

    $(dateDiv).datetimepicker();
    $(dateDiv).data("DateTimePicker").sideBySide(true);
    $(dateDiv).data("DateTimePicker").date(new Date(Date.parse(control.RawValues[0])));
    $(dateDiv).data("DateTimePicker").format("MM/DD/YYYY HH:mm");
    $(dateDiv).data("DateTimePicker").icons({
        time: "fa fa-clock-o",
        date: "fa fa-calendar",
        up: "fa fa-arrow-up",
        down: "fa fa-arrow-down",
        previous: "fa fa-chevron-left",
        next: "fa fa-chevron-right",
        today: "fa fa-clock-o",
        clear: "fa fa-trash-o"
    });

    $(dateTextBox).on('click', function() {
        $(dateDiv).data("DateTimePicker").toggle();
    });
}

标签: javascriptcssasp.netbootstrap-4twitter-bootstrap-3

解决方案


这将完全取决于您使用的 datetimepicker 组件。

可以让您设置最大视图:

$(dateDiv).datetimepicker({ maxView: 1 })

但是,它从未更新为支持 Bootstrap 4。

该选择器已被弃用,取而代之的是eonasdan-bootstrap-datetimepicker,它可以选择设置最小视图,但不能设置最大视图。如果要添加该选项,则需要深入研究该版本的代码。

有一个更新版本的 Eonasdan 选择器,现在称为tempus dominus,目前处于 alpha 阶段。该版本提供了打开或关闭各个视图的选项

$(dateDiv).tempusDominus({
   display: {
     viewMode: 'date',
     components: {
       decades: false,
       year: false,
       month: false,
       date: true,
       hours: true,
       minutes: true,
       seconds: false
     }
   }
})

推荐阅读