写一个循环
for (int i=0; i<dropdownlist1.Items.count; i++)
{
if( dropdownlist1.Items.value = year.tostring())
  dropdownlist1.selectindex = i;
}

解决方案 »

  1.   

    没有问题啊
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
       ArrayList arraylistYear = new ArrayList();
       arraylistYear.Add("2005");
       arraylistYear.Add("2003");
       arraylistYear.Add("2002");
       arraylistYear.Add("2004");
       int year = DateTime.Now.Year;
       int month = DateTime.Now.Month;
       int day = DateTime.Now.Day;
       dropdownlist1.DataSource = arraylistYear;
       dropdownlist1.DataBind();
       dropdownlist1.Items.FindByValue(year.ToString()).Selected = true;}
      

  2.   

    dropdownlist1.Items.FindByValue(year.ToString())什么也没找到,也就是它不是一个ListItem而是null值,null值当然没有Selected属性了,改成这样:
    ListItem item=dropdownlist1.Items.FindByValue(year.ToString());
    if(item!=null)
    item.Selected=true;--------------------------------
    AspNetPager 免费分页控件4.2版发布,同时发布最新源代码,欢迎下载:http://www.webdiyer.com
      

  3.   

    还是不可以啊,我用陕北吴旗娃的办法做的时候,出现错误:
    1 “ListItem”是一个类型,不能用作表达式。
    2  名称“item”未声明。
    3 “null”未声明。不再支持“Null”常数;请改用“System.DBNull”。
    这几个问题怎么解决?再一次多谢了!我附上最初的代码:
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then bindlist()
     End SubSub bindlist()
            Int(year = DateTime.Now.Year)
            Int(month = DateTime.Now.Month)
            Dim mylistyear As New ArrayList()
            Dim j As Integer
            Dim kkk As String = "2000"
            For j = 3 To 10
                mylistyear.Add(kkk + j)
            Next        DropDownList1.DataSource = mylistyear
            DropDownList1.DataBind()
            DropDownList1.Items.FindByValue(year.ToString()).Selected = True        Dim mylistmonth As New ArrayList()
            Dim i As Integer
            For i = 1 To 12
                mylistmonth.Add("" & i & "")
            Next
            DropDownList2.DataSource = mylistmonth
            DropDownList2.DataBind()
            DropDownList2.Items.FindByValue(month.ToString()).Selected = True
        End Sub大家帮我看一看究竟出了什么问题?
      

  4.   

    Dim item As ListItem
    item = DropDownList1.Items.FindByValue(year.ToString())
    If item <> Nothing Then
      DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(item);
    End If
      

  5.   

    主要是错在
    Dim kkk As String = "2000"应该将它定义为int才能相加,或是改为
    Dim kkk As String = "200"
    也行你可以看生成的HTML的原码,绝对会变成20001,20002....
    而不是你想要的2001,2002......
      

  6.   

    问题不是在Dim kkk As String = "2000"这,我试过了,可以正确得到2001,2003……
    我把icyer()的代码该成
    Dim item As ListItem
    item = DropDownList1.Items.FindByValue(year.ToString())
    If item is Nothing Then
      DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(item);
    End If才能通过编译,但执行的时候还是出现以下错误,我都头大了未将对象引用设置到对象的实例。 
    NullReferenceException: 未将对象引用设置到对象的实例。]
      

  7.   

    DropDownList1.Items.FindByValue(year.ToString()).Selected = True
    这句去掉可以吗!?
      

  8.   



    protected System.Web.UI.WebControls.DropDownList R_Day;
    protected System.Web.UI.WebControls.DropDownList R_Month;
    protected System.Web.UI.WebControls.DropDownList R_Year;
          
            DateTime OutDate;
    private void Page_Load(object sender, System.EventArgs e)
    {






    WhatDay("OutDate");
      if(!IsPostBack)
    {  
    }
    }
    public DateTime WhatDay(string DayUi)
    {
    int i1=1980;
    int i2=0;
    int i3=0;
    ArrayList YearList = new ArrayList();
    ArrayList MonthList = new ArrayList();
    ArrayList DayList = new ArrayList();
    if(!IsPostBack)
    {
    while(i1<2024)
    {
    YearList.Add (i1);
    i1+=1;
    }
    this.R_Year.DataSource = YearList;
    this.R_Year.DataBind();

    while(i2<13)
    { MonthList.Add (i2);
    i2+=1;
    }

    this.R_Month.DataSource = MonthList;
    this.R_Month.DataBind(); while(i3<32)
    {
    DayList.Add (i3);
    i3+=1;
    }
          this.R_Day.DataSource = DayList;
    this.R_Day.DataBind();
    this.R_Year.SelectedItem.Value=DateTime.Today.Year.ToString();
    this.R_Month.SelectedItem.Value=DateTime.Today.Month.ToString();
    this.R_Day.SelectedItem.Value=DateTime.Today.Day.ToString();
    this.R_Year.SelectedItem.Text=DateTime.Today.Year.ToString();
    this.R_Month.SelectedItem.Text=DateTime.Today.Month.ToString();
    this.R_Day.SelectedItem.Text=DateTime.Today.Day.ToString(); }

    }

    }
      

  9.   

    我解决了
            Dim arraylistYear = New ArrayList()
          
            arraylistYear.Add("2005")
            arraylistYear.Add("2003")
            arraylistYear.Add("2002")
            arraylistYear.Add("2004")
            Int(year = DateTime.Now.Year)
            DropDownList1.DataSource = arraylistYear
            DropDownList1.DataBind()
            DropDownList1.Items.FindByValue(now.year.ToString()).Selected = True