Drop down menu 剑道UI工具栏小部件和空下拉列表

Drop down menu 剑道UI工具栏小部件和空下拉列表,drop-down-menu,kendo-ui,datasource,toolbar,Drop Down Menu,Kendo Ui,Datasource,Toolbar,假设我有一些输入的剑道Ui工具栏小部件。工具栏有下拉列表和按钮。通过单击按钮,用户可以从dropdownlist中删除所选项目 在每次删除操作之后,将再次从控制器读取dropdownlist数据源。Dropdownlist刷新得很好,在我删除最后一项时,一切都很好。当控制器返回空数组时,下拉列表被中断 准备好的小型JSFIDLE我看到了两种可能的选择: 定义控制图元最小高度的样式。 不要删除最新的元素并保留元素,而是将其标记为禁用。 解决方案1:只需定义以下样式: #toolbar .k-dr

假设我有一些输入的剑道Ui工具栏小部件。工具栏有下拉列表和按钮。通过单击按钮,用户可以从dropdownlist中删除所选项目

在每次删除操作之后,将再次从控制器读取dropdownlist数据源。Dropdownlist刷新得很好,在我删除最后一项时,一切都很好。当控制器返回空数组时,下拉列表被中断


准备好的小型JSFIDLE

我看到了两种可能的选择:

定义控制图元最小高度的样式。 不要删除最新的元素并保留元素,而是将其标记为禁用。 解决方案1:只需定义以下样式:

#toolbar .k-dropdown-wrap {
    min-height: 2em;
}
您可以在此处看到这种方法:

解决方案2:不删除最新元素,但禁用下拉列表:

$("#toolbar").kendoToolBar({
    items: [
        { template: "<label>Demo:</label>" },
        { template: "<input id='my-drop-down' style='width: 150px; min-height: ' />" }
    ]
});

var myDropDown = $("#my-drop-down").kendoDropDownList({
    optionLabel: "Select My Value",
    dataTextField: "text",
    dataValueField: "value",
    dataSource: [
        { text: "Fake", value: -1 }
        /*
        { text: "Value 1", value: 1 },
        { text: "Value 2", value: 2 },
        { text: "Value 3", value: 3 },
        { text: "Value 4", value: 4 },
        { text: "Value 5", value: 5 },
        */
    ]
}).data("kendoDropDownList");
myDropDown.enable(false);
其中,我创建了一个文本设置为false的元素,但这并不重要,因为控件是使用myDropDown.enabletrue启用/禁用的;/myDropDown.enablefalse


您可以在这里看到这种方法:

如果没有选项,您希望在视觉上看到什么?您是否尝试过将文本为空的元素保留并禁用它?这一点很好。至少我希望这个小部件看起来像dropdownlist,而不是它的骨架。这可以接受吗?
$("#toolbar").kendoToolBar({
    items: [
        { template: "<label>Demo:</label>" },
        { template: "<input id='my-drop-down' style='width: 150px; min-height: ' />" }
    ]
});

var myDropDown = $("#my-drop-down").kendoDropDownList({
    optionLabel: "Select My Value",
    dataTextField: "text",
    dataValueField: "value",
    dataSource: [
        { text: "Fake", value: -1 }
        /*
        { text: "Value 1", value: 1 },
        { text: "Value 2", value: 2 },
        { text: "Value 3", value: 3 },
        { text: "Value 4", value: 4 },
        { text: "Value 5", value: 5 },
        */
    ]
}).data("kendoDropDownList");
myDropDown.enable(false);