【问题标题】:ASP.NET DropDownList SelectedIndex resets after OnSelectedIndexChangedASP.NET DropDownList SelectedIndex 在 OnSelectedIndexChanged 后重置
【发布时间】:2015-12-01 12:22:31
【问题描述】:

我有一个这样定义的 DropDownList:

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

我正在 !Page.IsPostBack 检查里面的 Page_Load 中填充 DropDownList。

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

如何在页面加载后保存选定的索引?

【问题讨论】:

  • 您必须显示更多代码,因为这不是正常行为。 campagnes_SelectedIndexChanged 被触发了吗?
  • 它确实保存了选定的索引。您在其他地方的代码导致它重置。我建议完整发布您的代码
  • 他们是对的。发布您的代码。 SelectedIndex 一直被保存
  • 我注意到我的项目的“价值”对于它们的倍数是相同的,并且它正在选择列表中具有此值的第一个项目。有没有可能是这个问题?
  • 我改变了我的物品的价值,所以它们都不同了,它现在可以工作了。

标签: asp.net


【解决方案1】:

您的Page_Load 中可能有类似的内容

campagnes.DataSource = somelist;
campagnes.DataBind();

确保你把它放在一个

if(!Page.IsPostBack)
{
    campagnes.DataSource = somelist;
    campagnes.DataBind();
}

这将确保下拉列表只与数据绑定一次。

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

【讨论】:

  • "我在 Page_Load 里面填充 DropDownList !Page.IsPostBack 检查。" - 原帖。
  • 这只是显而易见的解决方案,但我很高兴你能成功@GoranMottram
猜你喜欢
  • 2011-08-05
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
  • 2014-02-20
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多