DropDownList Items.Clear vs 绑定到空数据源



我有一些代码,在PageLoad中将一些默认数据集绑定到两个DropDownLists(ddlAddlB(。两个数据集都有一个string.Empty的默认选择。

ddlA发生变化时,ddlB应该根据ddlA的选择获得一个新的数据集。

我可以让它正常工作。我面临的问题是,当我选择ddlA的空项时"--Select An Item from ddlA--"然后我尝试将空数据源绑定到ddlB并给它一个默认的空选项,ddlB.DataSource = null; ddlB.DataBind(); ddlB.Items.Insert(0, [new list item])我得到的是初始数据集加上新的空列表项。

我检查了一下,在ddlA_SelectedIndexChanged我可以做ddlB.Items.Clear();,但我主要想知道为什么绑定空数据源不会给我一个没有项目的 DropDownList。

"ddlB 根据 ddlA 的选择填充"的逻辑移动到它自己的DropDownList_SelectedIndexChanged解决了这个问题。我认为这是因为发生了回发,因此 ddlB 的数据源已经为空,如果我在 ddlA 中选择了 string.empty 选择,那么它当时所做的只是添加一个字符串.空选择到 ddlB 中现在为空的数据源

最新更新