【问题标题】:Populate integers to dropdownlist using a loop使用循环将整数填充到下拉列表
【发布时间】:2014-02-23 03:37:42
【问题描述】:

无法弄清楚为什么我的程序不会使用循环填充我的 DropDownList

到目前为止,我已经尝试了这两种情况:

'Fill in the year box from current year to 100 years ago.
'(Safe to assume no one over 100 will be signing up for site)

Dim CurYear As Integer = Date.Now.Year
Dim CurYearMinus100 As Integer = CurYear - 100
Dim Index As Integer = 0

Do While CurYear >= CurYearMinus100
    DropDownListYear.Items.Insert(Index, CurYear)
    Index += 1
    CurYear -= 1
Loop

我也尝试过使用.Add() 功能而不是插入:

Dim CurYear As Integer = Date.Now.Year
Dim CurYearMinus100 As Integer = CurYear - 100

Do While CurYear >= CurYearMinus100
    DropDownListYear.Items.Add(Index)
    CurYear -= 1
Loop

【问题讨论】:

    标签: asp.net vb.net list loops populate


    【解决方案1】:

    不知道为什么需要Index,但这段代码可以工作:

    Dim CurYear As Integer = Date.Now.Year
    Dim CurYearMinus100 As Integer = CurYear - 100
    
    Do While CurYear >= CurYearMinus100
        DropDownListYear.Items.Add(New ListItem(CurYear.ToString(), CurYear.ToString()))
        CurYear -= 1
    Loop
    

    【讨论】:

      【解决方案2】:

      我个人是 For...Next 声明的粉丝,该声明带有递减的 Step 参数。

      可选。数值表达式。计数器的数量 每次循环递增。

      你的例子是:

      Dim currentYear = Date.Now.Year
      
      For year = currentYear To currentYear - 100 Step -1
      
         DropDownListYear.Items.Add(New ListItem(year.ToString(), year.ToString()))
      
      Next
      

      【讨论】:

        【解决方案3】:

        替换这个:

        DropDownListYear.Items.Insert(Index, CurYear)
        

        与:

        DropDownListYear.Items.Insert(Index, new ListItem(CurYear.ToString(), CurYear.ToString()))
        

        【讨论】:

          猜你喜欢
          • 2017-12-08
          • 1970-01-01
          • 2016-06-15
          • 1970-01-01
          • 2014-12-18
          • 2012-11-07
          • 2016-05-12
          • 2011-08-18
          • 1970-01-01
          相关资源
          最近更新 更多