当另一个下拉列表的值发生变化时,填写下拉列表

时间:2015-08-21 08:50:10

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

在我的mvc应用程序中,我有一个视图,我已调用部分视图,如下所示

Html.RenderPartial("_RulesSelection", selectedRule);

在局部视图'_RulesSelection'中我使用了下面的代码

@model string
@{
Layout = null;
}

@Html.RulesListBox(new { @id = "rulesList", @class = "chosen-select", @style = "width:100%" },selectedValues: Model)

<script type="text/javascript">
var config = {
    '.chosen-select': { placeholder_text_multiple: '--All--' },
    '.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: "100%" },
}
for (var selector in config) {
    $(selector).chosen(config[selector]);
}
$(".chosen").trigger('liszt:updated');
</script>

我使用了一种扩展方法来填充局部视图中的下拉列表

现在加载页面时,部分视图中的下拉列表会加载, 我的要求是通过传递第一个下拉列表的选定值,在视图中的第一个下拉列表中发生更改时加载下拉列表。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你应该在Ajax中这样做。 你可以用这样的东西来实现它:

$(document).on('liszt:updated', '.chosen', function(e) {
    $.ajax({
        url: 'my-site/controller/action?selectedValue=' + $('.chosen-select', $this).val()        
    }).done(function(data) {
        $('#secondDropDownContainer').html(data);
    });
});

您的控制器操作应该返回部分加载。