2009-05-03 96 views
0

我有两个DropDownListBoxes一个叫做ddlDay,另一个是ddlMonth。顾名思义,ddlDay的值从01到31(不是动态的),ddlMonth的值从01到12.这些值不是动态设置的。DropDownList绑定问题

当页面加载时,我从数据库中获取值..取决于值,我使用ddlDay.SelectedItem.Value = the value from the db to set的值并使项目被选中。

我在下面提供的代码用If Not Page.IsPostback Then...声明进行了测试,没有任何运气。

但是,当第一次加载页面时,没有任何反应。但是如果我刷新页面并因此导致回发,则值会正确绑定。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     loadInterview() 
    End Sub 

Private Sub loadInterview() 
    If Request.QueryString("iID") = "" Or Request.QueryString("iID") Is Nothing Then 
     Response.Redirect("interviews_list.aspx") 
    Else 
     Dim int As New hh.Interviews 
     int = hh.Interviews.ReturnSingleInterview(Request.QueryString("iID")) 

     ddlDay.SelectedItem.Value = int.InterviewDate.Day.ToString("00") 
     ddlMonth.SelectedItem.Value = int.InterviewDate.Month.ToString("00") 
     txtYear.Text = int.InterviewDate.Year 

     txtPerson.Text = int.InterviewPerson 
     txtTitle.Text = int.InterviewTitle 
     txtText.Text = int.InterviewText 

    End If 
+0

nitpick ...“int”是Integer在其他语言中的常用保留标识符,我会考虑改变它以减少混淆。什么是hh命名空间? – 2009-05-03 21:55:27

+0

是的太不可思议了,谢谢你的警告,我把它改成了一个更有意义的单词,是的......是一个命名空间...... – 2009-05-04 03:45:51

回答

1

试试这个设置初始值: ClearSelection方法避免了与HttpException异常:

ddlDay.ClearSelection() 
ddlDay.Items.FindByValue(int.InterviewDate.Day.ToString("00")).Selected = True 

ddlMonth.ClearSelection() 
ddlMonth.Items.FindByValue(int.InterviewDate.Month.ToString("00")).Selected = True 

注意 '不能在DropDownList中选择多个项目。'信息。

编辑2:假设你有这样的下拉列表:

<asp:DropDownList ID="ddlItems" runat="server"> 
    <asp:ListItem Text="Item 1" Value="Item 1"></asp:ListItem> 
    <asp:ListItem Text="Item 2" Value="Item 2" Selected="true"></asp:ListItem> 
    <asp:ListItem Text="Item 3" Value="Item 3"></asp:ListItem> 
</asp:DropDownList> 

如果设置了 “项目1” 你ddlItems.SelectedItem.Value这样的:

ddlItems.SelectedItem.Value = "Item 1" 

你的下拉列表变成这样:

<asp:DropDownList ID="ddlItems" runat="server"> 
    <asp:ListItem Text="Item 1" Value="Item 1"></asp:ListItem> 
    <asp:ListItem Text="Item 2" Value="Item 1" Selected="true"></asp:ListItem> 
    <asp:ListItem Text="Item 3" Value="Item 3"></asp:ListItem> 
</asp:DropDownList> 

我的意思是ddlItems.Selec tedItem指的是您的下拉选择的项目。