【问题标题】:Selecting all options in kendo multiselect选择剑道多选中的所有选项
【发布时间】:2018-07-04 15:29:12
【问题描述】:

我的应用程序中有一个 Kendo Multiselect 组件,我可以在其中选择可用选项。

我的观点是这样的:

div class="editor-field  col-width45">
<div>
    @(Html.Kendo().MultiSelectFor(model => model.FeaturesValues)
                    .DataTextField("Name")
                    .HtmlAttributes(new { @class = "size100Percent", Id = "FeaturesSelect" })
                    .DataValueField("Id")
                    .Placeholder("Selecione...")
                    .DataSource(source =>
                    {
                        source.Read(read =>
                        {
                            read.Action("GetFeatures", "Role");
                        })
                        .ServerFiltering(false);
                    }))
</div>

</div>

我想一次选择所有选项,而不是一一选择。

我寻找了一种方法来做到这一点,所有的解决方案都让我得到了这个结果:

  1. 我在视图中添加了一个按钮。
  2. 我创建了一个Js函数来全选:

我的代码是这样的:

div class="editor-field  col-width45">
<div>
    @(Html.Kendo().MultiSelectFor(model => model.FeaturesValues)
                    .DataTextField("Name")
                    .HtmlAttributes(new { @class = "size100Percent", Id = "FeaturesSelect" })
                    .DataValueField("Id")
                    .Placeholder("Selecione...")
                    .DataSource(source =>
                    {
                        source.Read(read =>
                        {
                            read.Action("GetFeatures", "Role");
                        })
                        .ServerFiltering(false);
                    }))
</div>
</br>
<div>
    @(Html.Kendo().Button()
                .Name("SelectAll")
                .HtmlAttributes(new { type = "button" })
                .Content("Selecionar todos")
                .Events(ev => ev.Click("selectAll")))
</div>

JavaScript:

function selectAll() {
    var multiSelect = $("#FeaturesSelect").data("kendoMultiSelect");
    var selectedValues = [];

    for (var i = 0; i < multiSelect.dataSource.data().length; i++) {
        var item = multiSelect.dataSource.data()[i];
        selectedValues.push(item.Id);
    }
    multiSelect.value(selectedValues);
    multiSelect.trigger("change");
}

我的结果是这样的: multiselect with button add all

一切正常!!!

我的问题是:

是否可以在剑道多选中创建一个复选框,用作全选,而没有这个按钮?

我想要的是这样的:

[不带按钮的多选][2]

enter image description here

【问题讨论】:

    标签: asp.net-mvc kendo-ui kendo-multiselect


    【解决方案1】:

    您可以在标题模板中添加复选框,用于选择 - 取消选择所有元素。

    查看此演示dojo

    虽然这里的示例是使用 Kendo UI JS 显示的,但您也可以使用 Kendo ASP.NET 来完成它。

    @(Html.Kendo().MultiSelect()
    ....
     .HeaderTemplate("<label><input type='checkbox' id='selectAll'> Select All</label>")
    

    【讨论】:

    • 谢谢,这正是我想要的,它拯救了我的一天! =)
    • @Mik3i4a5 不客气。另外,如果您认为对您有帮助,请选择它作为答案。stackoverflow.com/help/someone-answers
    【解决方案2】:

    我在这里为你准备了一个快速道场。 https://dojo.telerik.com/UpAFIdEx

    这应该是你所追求的。我刚刚应用了一些简单的样式,只是为了让事情看起来有点像你的第二张图片。但是,如果您使用的是引导程序或拥有处理元素定位的 css,这应该适合您。

    如有任何问题/疑问,请告诉我。

    【讨论】:

    • 感谢您的回答。差不多了,但复选框将在我的列表的标题中,我更改了我的图像以更好地查看:** 注意:** 我不知道是否可以这样做,这只是一个问题。如果您提供给我的解决方案不可能,那么它非常适合。谢谢
    • 复选框的放置位置完全取决于您。毕竟,您将多选定位在您想要的位置。因此,只需通过 muliselect 放置复选框并适当地设置样式。然后只需连接更改事件即可执行您想要的任何操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多