DropDownList绑定问题

时间:2009-05-03 21:29:28

标签: asp.net vb.net

我有两个DropDownListBox,一个名为ddlDay,另一个名为ddlMonth。顾名思义,ddlDay的值为01到31(非动态),ddlMonth的值为01到12.这些值不是动态设置的。

当页面加载时,我从数据库中获取值..取决于值,我使用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

1 个答案:

答案 0 :(得分:1)

尝试此设置初始值:

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

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

注意: ClearSelection方法避免了“无法在DropDownList中选择多个项目”的HttpException异常。消息。

编辑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>

如果将“Item 1”设置为ddlItems.SelectedItem.Value,则:

ddlItems.SelectedItem.Value = "Item 1"

你的dropDown列表就像那样:

<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.SelectedItem指的是你的下拉列表的选定项目。