1

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

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

有谁可以解释不同的场景,下拉菜单何时不保留其选定项目,何时保留?

4

1 回答 1

0

下拉列表不保留其选中项的最常见场景是当下拉列表的内容被反弹并且新的数据集与之前的数据集没有匹配值时,例如:

在初始页面加载时,您有一个带有 的下拉列表AB并且C在下拉列表中。用户B从下拉列表中选择。

现在用户在页面上执行一个动作(即点击搜索按钮),页面回传到服务器。D搜索结果用,EF;填充下拉列表 显然这些都不匹配B之前选择的值,所以下拉列表选择了下拉列表中的第一项,也就是此时的值D

维护所选项目的价值是一个常见的误解ViewState,但没有必要达到这种效果,它通常只是让它更容易。因此,关闭ViewState并不绝对意味着您无法在回发之间跟踪所选项目。

阅读真正了解 VIEWSTATE以获取有关如何ViewState在应用程序中有效使用和不有效使用的更多信息。

于 2013-09-27T13:00:35.493 回答