C# 在哪些情况下,asp:DropDownList在返回表单时将保持其选定值?

C# 在哪些情况下,asp:DropDownList在返回表单时将保持其选定值?,c#,asp.net,drop-down-menu,selectedvalue,C#,Asp.net,Drop Down Menu,Selectedvalue,我的搜索表单上有几个asp:DropDownList。从中选择项目并单击搜索按钮后,我将在搜索表单下获得一个结果列表。该列表包含我可以单击的项目,搜索表单将替换为该项目的详细视图。在表单容器的上方,我可以在搜索和详细视图之间导航,有类似标题的导航菜单,其中有常用的菜单项搜索、添加新项等 想象一下下面的场景:我用信息填充下拉列表和其他搜索字段,然后按下搜索按钮。我得到了结果清单。我从列表中打开一个项目以查看详细视图。我按下标题导航菜单上的搜索按钮返回搜索结果。所有结果将与我离开结果列表之前的结果保

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

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


是否有人可以解释不同的情况,下拉列表何时不保留其选定项,何时保留?

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

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

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

一种常见的误解是,ViewState是维护选定项值所必需的,但这并不是实现该效果所必需的,它只是使维护变得更容易。所以关闭ViewState并不一定意味着您无法在回发之间跟踪所选项目


有关如何在应用程序中有效使用和不使用ViewState的详细信息,请阅读。

如何将数据绑定到这些下拉列表?显示代码。ascx文件中不会生成实际的数据绑定列表。在这种情况下,重新选择的值是使用ddl项的值还是id?事实上,它越来越奇怪-我在ddl中有9个值,只有最后一个没有被重新选择。。。