【问题标题】:Fill ListBox with checkbox in MVC using Ajax call使用 Ajax 调用在 MVC 中用复选框填充 ListBox
【发布时间】:2017-12-14 03:55:23
【问题描述】:

您好,我正在尝试使用 ajax 调用通过复选框控件填充 Listbox 中的值。

但无法填充列表框中的数据。

在视图中:

@Html.ListBoxFor(m => m.City, new SelectList(new[] { "" }), new { id = "cmbCity", @style = "width: 100px;" })

$(document).ready(function () {
    $('#cmbCity').multiselect({
        includeSelectAllOption: true,
        enableFiltering: true     
    });

    $('#btnShowCity').on('click', function () {    
        $.ajax({
            url: '../CN/Get_City',
            cache: false,
            type: 'post',               
            success: function (data) {
                data = JSON.parse(data);
                $("#cmbCity").html("");
                $.each($.parseJSON(data.result_City), function (i, city) {
                    $("#cmbCity").append
                        ($('<option>                                   </option>').val(city.ID).html(city.Name))
               })  
              $('#cmbCity').multiselect('refresh');
            }
        })
});

在控制器中:

[HttpPost]

public string Get_City()
{
    clsDAL objclDAL = new clsDAL();

    DataTable _resultDataset =FillDataTable("SELECT [ID], Name FROM City");      
    return JsonConvert.SerializeObject(new { result_City = _resultDataset });
}

请给我一些建议

【问题讨论】:

  • 您似乎正在为列表框使用 jQuery 插件,因此您需要调用它的方法来刷新数据(只需先注释掉您的 $('#cmbCity').multiselect({ ... }) 代码以确保选项正在加载(您的控制器代码毫无意义——我们甚至不知道 result_City 是什么或它包含什么属性)
  • 嗨斯蒂芬,我已经编辑了控制器的代码
  • 仍然没有意义 - 它甚至无法编译! var jsonData ... 代码行是做什么用的 - 你从不使用 jsonDatareturn ... 代码行引用了 result_City 甚至不存在
  • 对不起斯蒂芬,这是我这边的错误。但我的问题在于视图。我不明白如何填写选项
  • 你到底为什么要序列化两次?

标签: asp.net-mvc


【解决方案1】:

$.each($.parseJSON(data.result_City), function (i, city) {
          $("#City").append($('<option></option>').val(city.ID).html(city.Name))
});

//--------mvc code block
//@Html.ListBoxFor(m => m.City, new SelectList(new[] { "" }), new { @style = "width: 100px;" })
//delete  id = "cmbCity" because your id ="Name" and name="Name"

【讨论】:

  • 我已经修改了代码。数据正在填写列表框,但无法获取列表。当我选择全选时,它会显示列表框中的记录数
猜你喜欢
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 2015-03-04
  • 2023-03-19
相关资源
最近更新 更多