Asp.NET 下拉列表选定项.值不变
本文关键字:NET 下拉列表 Asp | 更新日期: 2023-09-27 18:32:35
markup:
<div style="float:left;margin-top:15px;width:80px">
<asp:DropDownList ID="MyList" runat="server" Width="100px"></asp:DropDownList>
</div>
法典:
// clear vehicles list
MyList.Items.Clear();
// add 'all' option
MyList.Items.Add(new ListItem("ALL", "0"));
// add assets
foreach (CustomClass item in items)
MyList.Items.Add(new ListItem(item.Name, item.ID.ToString()));
没有事件触发选定索引已更改,因为它不是必需的。
当我单击回发按钮时,所选项的值仍然是下拉列表中第一项的值。我错过了什么?
注意请停止回复和编辑帖子。我们可以保持原样,因为它已经得到了回答。
如果您在 Page_Load
中进行数据绑定,则实际上也是在重置 SelectedItem。
应将Page_Load
中存在的任何绑定代码包装在 if(!IsPostBack)
块中。
if(!Page.IsPostBack)
{
// Your binding code here ...
}
您的代码也可能在回发后执行,清除框,因此丢失选择和所有内容。
如果是这样,请尝试将代码包装在类似 if( !Page.IsPostBack ) { ... }
.
所以这个答案是最常见原因的"明显"解决方案。但是,还有一个令人惊讶的问题可能会导致这种情况!我的列表值来自数据库,这些值具有换行符和回车符:"''r'"。这些值看起来像一个无辜的空间,但实际上并非如此!我的解决方案是删除这些隐藏的 Char 值。希望对您有所帮助。
是的,您缺少添加下拉列表自动回发=true。
请在您的.aspx页面中尝试以下内容
嘿,第一个索引要添加所有不需要添加的内容。 您需要插入特定的索引号
MyList.Items.Insert(0, "ALL");