我有一个下拉列表如下:
@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();
}
});
});
});
谢谢,
希沙姆。
答案 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;