asp.net - 将“ALL”选项添加到列表框中,并根据下拉列表中的选择动态更改它
问题描述
我有一个包含国家名称的下拉列表和一个包含不同类型季节(如夏季、冬季等)的列表框,并且它们都在 page_load 事件中从我的数据库中的表中更新。
在 Page_Load 事件期间,我的 DropDownList 和 ListBox 会使用数据库表中存在的所有可用国家和季节进行更新。
在我的 DropDownList 中选择国家后,我的 ListBox 会动态变化。
例如,如果我选择美国,那么季节会像秋天、冬天、夏天一样动态变化。现在它完美地工作。
如果选择了一个拥有所有季节的国家,我唯一想要的是在我的 ListBox 顶部添加一个“ALL”选项。
例如,如果我在 DropDownList 中选择国家“X”,并且数据库中包含所有天气,则 ListBox 顶部将有一个“ALL”选项。基本上,只有当 Page_Load 事件期间的所有季节都与选择国家后的季节相匹配时,才会弹出“ALL”选项。
我试过的:
我第一次像这样在 page_loaded 之后尝试获取列表框的总数
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
int countListBox = lb.Items.Count;
}
}
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if (lb.Items.Count == countListBox)
{
lb.Items.Insert(0, "All");
}
}
解决方案
我有一个想法,但我不确定这是否正是您要问的。
尝试在 Page_Load 方法之外添加您的变量,以便可以从所有方法访问它。
private int _countListBox;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// make sure the listbox is populated first.
_countListBox = lb.Items.Count;
}
}
然后
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if (lb.Items.Count == _countListBox)
{
lb.Items.Insert(0, "All");
}
}
推荐阅读
- php - Safari ios 从 https 提交表单到 http 页面开始加载但它停止
- ag-grid - Ag Grid - 如何将标准单元格编辑器的宽度和高度设置为单元格的完整宽度和高度
- web-applications - 将 UWP 转换为 WebApp
- perl - 在 Perl 中使用两个搜索和替换正则表达式命令
- javascript - 每次用户 POST 数据时,Bcrypt 都会重置哈希并且用户的密码不再有效
- html - Angular 6 - 单击时防止功能更改
- javascript - 即使在 sweetalert2 中按下取消按钮,也提交数据
- java - 表内链接的哈希表
- javascript - Ajax 请求每个循环
- git - git - 一次通过一个提交合并大分支