【问题标题】:DropDownList selected item keeps selecting the same item ASP.NET c#DropDownList选定的项目不断选择相同的项目ASP.NET c#
【发布时间】:2015-04-04 19:51:55
【问题描述】:

我在 ASP.NET 中的 Web 窗体上创建了一个 DropDownList。在浏览器中,我想从下拉列表中选择一个项目并在标签中显示项目的文本,但无论我选择什么项目,下拉列表都会继续选择相同的项目。

这是我的下拉列表;

    <asp:DropDownList ID="ddlWeek" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlWeek_SelectedIndexChanged" Visible="False">
        <asp:ListItem Value="1">Select a Week</asp:ListItem>
        <asp:ListItem Value="10">June 7 to June 14, 2015</asp:ListItem>
        <asp:ListItem Value="10">June 14 to June 21, 2015</asp:ListItem>
        <asp:ListItem Value="10">June 21 to June 28, 2015</asp:ListItem>
        <asp:ListItem Value="10">June 28 to July 5, 2015</asp:ListItem>
        <asp:ListItem Value="10">July 5 to July 12, 2015</asp:ListItem>
        <asp:ListItem Value="10">July 12 to July 19, 2015</asp:ListItem>
        <asp:ListItem Value="10">July 19 to July 26, 2015</asp:ListItem>
        <asp:ListItem Value="10">July 26 to August 2, 2015</asp:ListItem>
        <asp:ListItem Value="10">August 2 to August 9, 2015</asp:ListItem>
        <asp:ListItem Value="10">August 9 to August 16, 2015</asp:ListItem>
        <asp:ListItem Value="10">August 16 to August 23, 2015</asp:ListItem>
        <asp:ListItem Value="10">August 23 to August 30, 2015</asp:ListItem>

    </asp:DropDownList>

这就是我想要做的:

protected void ddlWeek_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    lbWeek.Text = "You selected the week of: " + ddlWeek.SelectedItem.Text;
}

使用自动回发并将其设置为 true。任何帮助表示赞赏。 泥炭

【问题讨论】:

    标签: c# asp.net drop-down-menu


    【解决方案1】:

    您的下拉列表项值必须不同。如果您为所有项目提供相同的值,则它在 asp.net 中不起作用。

    <asp:DropDownList ID="ddlWeek" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlWeek_SelectedIndexChanged">
                <asp:ListItem Value="1">Select a Week</asp:ListItem>
                <asp:ListItem Value="2:10">June 7 to June 14, 2015</asp:ListItem>
                <asp:ListItem Value="3:10">June 14 to June 21, 2015</asp:ListItem>
                <asp:ListItem Value="4:10">June 21 to June 28, 2015</asp:ListItem>
                <asp:ListItem Value="5:10">June 28 to July 5, 2015</asp:ListItem>
                <asp:ListItem Value="6:10">July 5 to July 12, 2015</asp:ListItem>
                <asp:ListItem Value="7:10">July 12 to July 19, 2015</asp:ListItem>
                <asp:ListItem Value="8:10">July 19 to July 26, 2015</asp:ListItem>
                <asp:ListItem Value="9:10">July 26 to August 2, 2015</asp:ListItem>
                <asp:ListItem Value="10:10">August 2 to August 9, 2015</asp:ListItem>
                <asp:ListItem Value="11:10">August 9 to August 16, 2015</asp:ListItem>
                <asp:ListItem Value="12:10">August 16 to August 23, 2015</asp:ListItem>
                <asp:ListItem Value="13:10">August 23 to August 30, 2015</asp:ListItem>
            </asp:DropDownList>
    

    编辑:

    我已经在上面的代码中更改了 DropDown 控件的所有值,现在您可以按照以下逻辑获取 DropDownList 的选定值:

    protected void ddlWeek_SelectedIndexChanged(object sender, EventArgs e)
    {
        lbWeek.Text = "You selected the week of: " + ddlWeek.SelectedItem.Text + "<br/>";
        lbWeek.Text += "Value: " + ddlWeek.SelectedItem.Value + "<br/>";
    
        int liStartIndex = ddlWeek.SelectedItem.Value.IndexOf(":") + 1;
        int liLength = ddlWeek.SelectedItem.Value.Length - liStartIndex;
        string lsOriginalValue = string.Empty;
    
        if (liStartIndex > 1)
        {
            lsOriginalValue = ddlWeek.SelectedItem.Value.Substring(liStartIndex, liLength);
            lbWeek.Text += "Original Value: " + lsOriginalValue;
        }
    }
    

    【讨论】:

    • 灵巧,谢谢,已经解决了。我有理由将值设置为 10 - 我打算根据选择项目的次数来更改值,但应该能够想出不同的方法。
    • 嗨 Peat,我已经编辑了我的答案,请查看它,如果您有任何问题,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多