基本的に、JQuery / Javascript を使用していくつかのドロップダウン リストを埋めましたが、ポストバック後は完全にリセットされて空になります。そのため、ボタンをもう一度クリックして入力し、ユーザーに値を選択させる必要があります。
手動で定義するオプションを含むドロップダウンリストは、選択した位置などを保持します...他のddlの値も保持されるようにするにはどうすればよいですか?
コードは次のとおりです。
<script type="text/javascript">
(function ($) {
$.fn.cascade = function (options) {
var defaults = {};
var opts = $.extend(defaults, options);
return this.each(function () {
$(this).change(function () {
var selectedValue = $(this).val();
var params = {};
params[opts.paramName] = selectedValue;
$.getJSON(opts.url, params, function (items) {
opts.childSelect.empty();
$.each(items, function (index, item) {
opts.childSelect.append(
$('<option/>')
.attr('value', item.Id)
.text(item.Name)
);
});
});
});
});
};
})(jQuery);
$(function () {
$('#loc').cascade({
url: '@Url.Action("First")',
paramName: 'aId',
childSelect: $('#loc1')
});
$('#loc1').cascade({
url: '@Url.Action("Second")',
paramName: 'sId',
childSelect: $('#loc2')
});
});
</script>
このコードは、値のリストを返すいくつかのサーバー側関数を呼び出すだけです