【问题标题】:copy data from one Html.listboxfor to other listbox in asp.net mvc将数据从一个 Html.listboxfor 复制到 asp.net mvc 中的另一个列表框
【发布时间】:2013-01-24 04:21:52
【问题描述】:

我有两个Html.ListBoxFor,分别称为AB

1) A 具有从 DB 填充的数据,B 为空。

2) 我想要一个类似this 的功能,其中列表A 中的项目被放入列表B

$('.add').on('click', function() {
    var options = $('select.multiselect1 option:selected').sort().clone();
    $('select.multiselect2').append(options);
});
$('.addAll').on('click', function() {
    var options = $('select.multiselect1 option').sort().clone();
    $('select.multiselect2').append(options);
});
$('.remove').on('click', function() {
    $('select.multiselect2 option:selected').remove();
});
$('.removeAll').on('click', function() {
    $('select.multiselect2').empty();
});

3) 我用 asp.net mvc 试过这个,但我无法获取模型和控制器中的选定项目。

4) 我想要一种可以在 asp.net mvc 中执行此操作的方法。如果在 mvc 中有某种方式,那么我将能够将该数据存储在 SQL DB 中

5) 它的 jquery 兄弟是here

任何帮助将不胜感激

【问题讨论】:

  • 你对 MVC 做了什么尝试?代码应该非常相似。
  • @RudiVisser 请看这个贴pastebin.com/mb2TdLG0
  • 模型中的类型是什么?为B 接受int[] 并在控制器中重新创建您的数据库实体可能值得。
  • 我尝试了 List 、 int[] 、 List 、 string [] ,但仍然无法在控制器中获取列表框值。尝试表单集合后发现了一件奇怪的事情,但是表单集合中没有listbox的属性。所有 UI 控件的其余部分都在那里。可能是什么原因?
  • 我发现一件事,如果我选择列表框中的所有项目并单击提交,那么我会在表单集合中获得所有选定的项目,而不是在模型中。我仍然收到错误“值'3,5,7'无效”。这些是所选项目的 ID。不知道这里有什么问题?

标签: jquery-ui model-view-controller jquery asp.net-mvc-4


【解决方案1】:

我认为这会对您有所帮助。

块引用

HTML 文件

Fruits:
        <select multiple="multiple" id="a">
            <option value="1">Apple</option>
            <option value="2">Orange</option>
            <option value="3">Banana</option>
        </select>

        <input type="button" id="add" value="Add"/>
         <input type="button" id="addall" value="Add all"/>
        <select multiple="multiple" id="b">

        </select>

Javascript 文件

$("#add").bind("click", function () {
        addOption(false);

 });

$("#addall").bind("click", function () {
    addOption(true);

});

function addOption(isAll){
    var option = $("#a option");
    if (!isAll) {
       option = $("#a option:selected");
    } else {
       $("#b").html("");
    }

    $(option).each(function () {
       var val = $(this).val();
       var text = $(this).text();
       $("#b").append($(this)[0].outerHTML);
       $(this).remove();
    });
}

【讨论】:

  • 不,伙计,我的情况是使用 asp.net mvc 而不是 jquery,我必须通过状态管理将值存储在数据库中。
猜你喜欢
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 2019-09-28
  • 2020-11-03
  • 2019-08-11
  • 2017-03-28
  • 1970-01-01
  • 2018-03-29
相关资源
最近更新 更多