ASP.NET DropDownList SelectedIndex在OnSelectedIndex更改后重置

ASP.NET DropDownList SelectedIndex在OnSelectedIndex更改后重置,asp.net,Asp.net,我有一个下拉列表,定义如下: <td> <asp:DropDownList ID="campagnes" runat="server" AutoPostBack="true" EnableViewState="true" OnSelectedIndexChanged="campagnes_SelectedIndexChanged"></asp:DropDownList> </td> 我在里面的页面中填写下拉列表!Page.IsPo

我有一个下拉列表,定义如下:

<td>
      <asp:DropDownList ID="campagnes" runat="server" AutoPostBack="true" EnableViewState="true" OnSelectedIndexChanged="campagnes_SelectedIndexChanged"></asp:DropDownList>
</td>


我在里面的页面中填写下拉列表!Page.IsPostBack检查

每次我尝试选择一个项目时,它都会加载页面并重置所选索引


即使在页面加载之后,如何保存所选索引?

您的
页面加载中可能有类似的内容

campagnes.DataSource = somelist;
campagnes.DataBind();
确保你把它放在一个盒子里

if(!Page.IsPostBack)
{
    campagnes.DataSource = somelist;
    campagnes.DataBind();
}
这将确保下拉列表只与数据绑定一次


发生的情况是,当您触发方法时,在触发实际的
SelectedItemChanged
事件之前,首先调用
Page\u Load
,这会导致数据再次绑定。

您必须显示更多代码,因为这不是正常行为。是否触发了
campagnes\u SelectedIndexChanged
?它会保存所选索引。您在其他地方的代码导致它重置。我建议把你的代码全部贴出来,他们是对的。发布你的代码。SelectedIndex always Be Save我注意到我的项目的“值”对于它们的倍数是相同的,它正在选择列表中第一个具有此值的项目。有可能是问题吗?我更改了我的项目的值,使它们都不同,现在可以正常工作。“我正在填写页面中的DropDownList_Load inside!Page.IsPostBack check。”-原始帖子。这只是一个显而易见的解决方案,但我很高兴您在@GoranMotram中使用了它