0

我有一个带有SelectedIndexChanged事件监听器的 DropDownList

<asp:DropDownList ID="LoanOptionCombo" runat="server" AutoProstBack="True">

听众

Protected Sub LoanOptionCombo_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles LoanOptionCombo.SelectedIndexChanged
    ' hello world, no code here yet
End Sub

我的Page_Load活动

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' parse a .txt file and populate the DropDownList
    InitializeLoanOptions()
End Sub

当表单最初加载时,贷款选项被加载到 DropDownList(目前是 4 个)中。

每当用户为 DropDownList 选择贷款选项时,DrowDownList 都会以某种方式重新初始化,再次将相同的 4 个选项添加到列表中。

每次用户选择另一个选项时,相同的 4 个选项会重新添加到列表中。

我假设再次调用 Page_Load 事件,因为这是我实际添加 DropDownList 项目的唯一地方。代码中没有其他地方与 DrowDownList.Items 交互。

如何在 DropDownList 上收听 SelectedIndexChanged 事件,但避免重新初始化整个表单?

4

3 回答 3

1

您可以在页面加载事件中使用 IsPostBack 属性。当您的页面加载时,只有数据绑定到您的下拉菜单。

检查这些链接

http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx

http://www.aspnet101.com/2007/03/if-not-page-ispostback/

于 2012-06-11T04:20:42.047 回答
1

你需要改变你Page_Load的如下

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' parse a .txt file and populate the DropDownList
 If Not IsPostBack
    InitializeLoanOptions()
  End If
End Sub
于 2012-06-11T04:24:01.727 回答
0

检查 page_load 上的 IsPostBack 属性。

If Not IsPostBack
  // Load your drop drop list here....
End If
于 2012-06-11T04:30:02.003 回答