添加到Html.dropdownlist一个额外的option.text和option.value mvc

时间:2013-08-09 10:09:40

标签: c# asp.net-mvc-4 razor

我有一个下拉列表如下:

@Html.DropDownList("accounts", (IEnumerable<SelectListItem>)ViewData["Accounts"], "--- All ---")

当我想从javascript检索下拉列表的值(额外选项)时,我得到一个空字符串,如何设置ddl的值,我的脚本看起来像:

<script type="text/javascript">
$(document).ready(function () {
    $("#accounts").change(function () {
        var idaccount = $("#accounts > option:selected").attr("value");
        $("#ordersTabel>tbody>tr").each(function (index, itemData) {
            $this = $(this)
            var accountintable = $("#accountKolom", itemData).text();
            if (idaccount == "--- All ---") {
                $this.show();
            }

            if (idaccount != $.trim(accountintable)) {
                $this.hide();
            }

        });
    });
});

谢谢,

希沙姆。

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,默认选项值应该是一个空字符串,以便Required属性按预期工作:它验证是否存在值。

但是,如果您询问“如何在现有IEnumerable中插入带有值的其他选项”,则可以使用Enumerable.Concat扩展方法:

var accountOptions = <do whatever you do to generate your existing collection>;
var allOptions = new[]{new SelectListItem{
    Value = <your value>, 
    Text = "--- All ---";}}.Concat(accountOptions);
ViewData["Accounts"] = allOptions;