1

我有一个下拉列表如下:

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

        });
    });
});

谢谢,

希查姆。

4

1 回答 1

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;
于 2013-08-10T15:27:00.543 回答