jquery - 使用 JQuery 根据 Ajax 结果更新列表框
问题描述
我无法让我的 2 个列表框根据需要工作。我正在使用 asp.net MVC5。我在模态表单上有 2 个多选列表框(和一些其他控件)。
Listbox1 包含许多可供选择的项目,用户在列表中选择一个或多个项目并单击按钮将它们“移动”到 Listbox2。
单击按钮时,我通过 Ajax 提交整个表单,然后“移动”方法中的项目。现在 Listbox2 应该包含用户选择的项目,而 Listbox1 应该保留用户没有选择的项目。
该方法很好,因为我可以移动数据库中的数据,我的问题是如何让列表框在之后显示正确的数据。
这些是我必须提供给列表框的模型属性:-
List<Int64> List1
List<SelectListItem> List1Items
List<Int64> List2
List<SelectListItem> List2Items
在每种情况下,都有一个用于保存所选项目的列表和一个用于 ListBoxFor 显示的列表。
列表框设置如下:-
@Html.ListBoxFor(i => Model.List1, Model.List1Items)
@Html.ListBoxFor(i => Model.List2, Model.List2Items)
我注意到当我提交表单时,List1Items 和 List2Items 不会传递给控制器。这没什么大不了的,因为我可以在方法中对它们进行排序并将它们传回。
当模型传回 Ajax 函数时,我基本上需要知道如何使用 jquery 更新 2 个列表框,如下所示:-
$.ajax
({
url: '@Url.Action("MoveItems", "MyController")',
method: 'POST',
cache: false,
data: $("#MyForm").serialize(),
success: function (retValue) {
if (retValue.Result === "Success") {
// What do I need here ?
// Model is passed back as 'retValue.Data'
alert(retValue.SuccessMessage);
}
else if (retValue.Result === "Error") {
alert(retValue.ErrorMessage);
}
},
failure: function () {
alert('Unknown Server Error');
}
});
希望有人能指出我正确的方向。
解决方案
试试下面的一个。
<script>
var lst1 = $("[id*=List1]");
lst1.empty();
$.each(retValue.Data, function ()
{
lst1.append($("<option></option>").val(this['Value']).html(this['Text']));
});
</script>
推荐阅读
- php - 使用 Ajax 和 PHP 的文件数组上传未被 .php 文件占用
- java - 如何在 2D 数组中填充十个随机元素而不多次填充其中一个元素?
- c# - ZedGraph PointEditEvent 仅在一条曲线中
- javascript - Req.body 为空 node.js 并表示
- javascript - 如何使用 useEffect 挂钩注册事件?
- c++ - 如何制作进度条的跑马灯样式?
- linux - 如何在 x86 汇编中编写自己的 atoi 函数
- jboss7.x - 如何将动态 Jasper 实现为 JBoss AS 7.2 静态模块?
- java - 将java循环转换为JSTL
- r - 在循环中使用胶水和 dplyr 获取关卡名称