如何使用'chosen.js'插件在MVC 3中实现多个选择

时间:2013-08-06 09:00:07

标签: c# asp.net asp.net-mvc-3 razor jquery-chosen

如何为MVC 3实现chosen插件?

用于此类输出

enter image description here

4 个答案:

答案 0 :(得分:6)

这是我的代码如何使selected.js与javascript / MVC一起使用

这是我的下拉列表

@Html.DropDownListFor(m => m.CategoryId,
                                    new SelectList(Model.Categories, "Id", "Name"),
                                    "Choose a Category...",
                                    new
                                    {
                                        id = "CategoryId",
                                        multiple = "",
                                        @class = "chzn-select srs-select search-dropdown",
                                        data_placeholder = "Choose a Category..."
                                    })

这里我使用'chzn-select'样式

- 在准备好的文档中,应该有一个名为.chosen()的函数。

$(document).ready(function () {

    $('.chzn-select').chosen();
});

在Javascript中,要检索所选内容,这是代码

检索下拉框中所选项目的代码

var selectedCategoryId = $('Select#CategoryId').val();
    var selectedCategories = "";

    if (selectedCategoryId != null) {
        $.each(selectedCategoryId, function (index, value) {
            selectedCategories = selectedCategories + value + ",";
        });
    }

基本上,selectedCategories具有所选项目的ID,由','

分隔

使用所选值更新下拉列表

将您的值复制到数组

var categoryArray = new Array(); 

...有代码初始化数组,而不是之前选择的值。

//代码让你选择,数组有你的值。

$('Select#CategoryId').val(categoryArray);

$('.chzn-select').trigger('chosen:updated');

希望这有帮助

答案 1 :(得分:3)

我已按照以下方式重新配置所选插件并正常工作。

我的剃刀:

<div style="width: 750px; clear: both; margin-left: 170px;">

            @Html.ListBox(
                             "Emailaddress",
                             ViewBag.EmailaddressList as MultiSelectList,
                             new { @class = "chosen-select", data_placeholder = "Choose a Emailaddress...", style = "width:750px;", tabindex = "4" }
                         )
</div> 

在html Razor代码

之后添加此脚本
<script src="@Url.Content("~/Scripts/chosen.js/chosen.jquery.js")" type="text/javascript"></script>
        <script type="text/javascript">
            var config = {
                '.chosen-select': {},
                '.chosen-select-deselect': { allow_single_deselect: true },
                '.chosen-select-no-single': { disable_search_threshold: 10 },
                '.chosen-select-no-results': { no_results_text: 'Oops, nothing found!' },
                '.chosen-select-width': { width: "95%" }
            }
            for (var selector in config) {
                $(selector).chosen(config[selector]);
            }
  </script>

我的观点包:

ViewBag.Skills = new MultiSelectList(EmailaddressList, "Id", "EmailId");

答案 2 :(得分:1)

请访问以下链接。这将帮助您使用mvc3实现所选插件。我觉得这对我有用。还有链接

http://utsavized.com/chosen-multiselect-dropdown-list-with-asp-net-mvc3/

答案 3 :(得分:1)

我认为你应该这样使用。

@Html.DropDownListFor(model => model.CountryId, new SelectList(Model.Countries, "ID", "Name"), "select", new { @ID = "ddlCountry", @class = "chosen-select", multiple = "multiple", Style = "width: 150px;" })

这会对你有帮助。