ASP.NET Mvc两个依赖的下拉列表?

时间:2012-07-16 07:04:38

标签: asp.net-mvc jquery

脚本

<script type="text/javascript">
$(document).ready(function () {
    $('musteri_sno').change(function () {
        $('form_sayac_secimi').submit(function () {
            if ($(this).valid()) {
                $.ajax({
                    url: this.action,
                    type: this.method,
                    data: $(this).serialize(),
                    success: function (result) {

                    }
                });
            }
            return false;
        });
    });
});
</script>

html

@using (Html.BeginForm("SayacSecimiPartial", "SayacOkumalari", FormMethod.Post, new { id = "form_sayac_secimi" }))
{
<table>
    <tr>
        <td>
            @Html.DropDownList("musteri_sno", (SelectList)ViewBag.musteri_id, "--Müşteri Seçiniz--", new { id = "musteri_sno" })
        </td>
        <td>
            @Html.DropDownList("sayac_no", Enumerable.Empty<SelectListItem>(), "-- Sayaç Seçiniz --", new { id = "sayac_no" })
        </td>
        <td>
            <input type="submit" value="Uygula" />
            @Html.Hidden("sno", new { sno = ViewData["sno"] })
        </td>
    </tr>
</table> 
}

我想用第一个返回的值填充第二个下拉列表。我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

在ajax调用的成功回调中,构建填充了返回值的option标记,然后将其附加到名为“sayac_no”的select标记中。

success: function(result) {
  var opt = '';
  for (var i = 0; i < result; i++) {
    opt += '<option value="' + result[i].value + '">' + result[i].name + '</option>';
  }
  $('select[name=sayac_no]').html(opt);
}

我认为结果对象是具有两个属性name和value的对象列表。 根据您的需要对其进行修改并进行改进,因为这只是一个非常基本的版本。