我的下拉令人发疯

时间:2014-07-09 09:08:23

标签: c# asp.net

我有以下下拉列表:

for (int i = 1; i <= 8; i++) dd_HorasImputadas.Items.Add(i.ToString());

但是当我按下一个按钮时,页面显示和下拉重复......

Ex: 1, 2, 3, 4, 5, 6, 7, 8 
BUTTON → 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8... 
BUTTON → 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 

每次按下按钮(我认为是因为页面再次加载),数字再次翻倍......

任何人都知道如何阻止它?这就像一个循环...

我希望我已经正确解释,我的英语不是很好,我是一名新手程序员。非常感谢您的答案

3 个答案:

答案 0 :(得分:1)

当您按下按钮时,将触发回发,这意味着将触发Page_Load功能。

假设项目已添加到Page_Load功能的下拉列表中,则每次加载页面时,都会再次添加项目。

在重新添加项目之前,需要清除下拉列表,这可以通过以下方式完成:

dd_HorasImputadas.Items.Clear();

编辑:正如其他答案所述,您可以使用

Page.IsPostback

属性。

答案 1 :(得分:1)

在添加要下拉的项目之前,请将其清除,如下所示

dd_HorasImputadas.Items.Clear();//clears all items of dropdown 

然后添加像这样的项目

for (int i = 1; i <= 8; i++) 
dd_HorasImputadas.Items.Add(i.ToString());

替代解决您的问题的方法是,当您第一次将下拉列表绑定时,请将您的代码包含在

if (!Page.IsPostBack)
{
  //this code won't execute if there is any postback like your button click
  for (int i = 1; i <= 8; i++) 
    dd_HorasImputadas.Items.Add(i.ToString());
}

答案 2 :(得分:0)

调用下面的下拉填充功能

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Me.IsPostBack = False Then
       'Fill your dropdown here 
    End If
End Sub