我有一个下拉列表,如下所示:
@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;