在哪些情况下,asp:DropDownList 在返回窗体时将保持其所选值

本文关键字:返回 情况下 asp DropDownList 窗体 | 更新日期: 2023-09-27 18:33:06

我的搜索表单上有几个asp:dropdownlists。从中选择项目并单击搜索按钮后,我将在搜索表单下获得结果列表。该列表包含项目,我可以单击这些项目,搜索表单将替换为该项目的详细视图。在表单容器上方(我可以在搜索和详细视图之间导航的地方(有类似标题的导航菜单,其中是常用的菜单项(搜索,添加新项等(。

想象一下以下场景:我用信息填充下拉列表和其他搜索字段,然后按搜索按钮。我得到结果列表。我从列表中打开一个项目以查看详细视图。我按下类似标题的导航菜单上的"搜索"按钮返回我的搜索结果。所有结果将保持不变,我离开结果列表之前的所有结果都相同,所有搜索参数字段都具有相同的值,ddl 具有我在进行搜索时输入的相同选择值。 - 这将是完美的场景。但是,取而代之的是,其中一个下拉列表决定不显示我用于搜索的相同值。它显示默认值,当我还没有使用搜索时,它将在那里。

有没有人可以解释不同的情况,什么时候下拉列表不保留其所选项目,什么时候保留

在哪些情况下,asp:DropDownList 在返回窗体时将保持其所选值

下拉列表

不会保留其选定项的最常见情况是,下拉列表的内容被重新绑定,并且新数据集中不存在与前一组数据匹配的值,例如:

在初始页面加载时,您有一个下拉列表,下拉列表中有ABC。用户从下拉列表中选择B

现在,用户在页面上执行操作(即单击搜索按钮(,页面回发到服务器。搜索结果用DEF填充下拉列表;显然,这些都与之前选择的B值不匹配,因此下拉列表选择下拉列表中的第一项,即此时D的值。

一个常见的误解是,需要ViewState来保持所选项目值,但没有必要达到该效果,它只是通常使它更容易。因此,关闭ViewState并不意味着您无法在回发之间跟踪所选项目。

阅读真正了解视图状态,了解有关如何在应用程序中有效使用和不使用ViewState的详细信息。