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



我有一个下拉列表,如下所示:

@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();
            }
        });
    });
});

谢谢,

Hicham。

正如注释中所提到的,默认选项值应该是一个空字符串,以便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;

相关内容

最新更新