【问题标题】:DropDownList Selected Index changeDropDownList 选定索引更改
【发布时间】:2013-08-03 07:53:16
【问题描述】:

我在 Updatepanel 中使用 DropDownList,其 autopost back 属性设置为 true, 它工作正常,除非它有 SelectedValue=0(即 SelectedIndex=0)

这是我的下拉列表

<asp:UpdatePanel ID="panel" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="ddFilter" EnableViewState="false" runat="server" Style="width: 168px;
            border: none;" OnSelectedIndexChanged="ddComapanyFilter_SelectedIndexChanged"
            AutoPostBack="true">
            <asp:ListItem Text="All" Value="0"></asp:ListItem>
            <asp:ListItem Text="Flagged" Value="1"></asp:ListItem>
            <asp:ListItem Text="New" Value="2"></asp:ListItem>
        </asp:DropDownList>
    </ContentTemplate>
</asp:UpdatePanel>

这是我的 SelectedIndexChangedEvent

protected void ddComapanyFilter_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddComapanyFilter.SelectedValue == "0")//All
    {
       //code
    }
    else if (ddComapanyFilter.SelectedValue == "1")//Flagged
    {
       //code
    }
    else if (ddComapanyFilter.SelectedValue == "2")//New
    {
       //code
    }          
}

当我选择 New 或 Flagged 时,它工作正常,但是当我再次选择 All 时,它没有做任何事情,我尝试调试它,以防 All 没有命中代码。

我尝试用这个替换我的下拉代码

<asp:DropDownList ID="ddFilter" EnableViewState="false" runat="server" Style="width: 168px;
                                border: none;" OnSelectedIndexChanged="ddComapanyFilter_SelectedIndexChanged"
                                AutoPostBack="true">
                                <asp:ListItem Text="All" Value="1"></asp:ListItem>
                                <asp:ListItem Text="Flagged" Value="2" Selected="True"></asp:ListItem>
                                <asp:ListItem Text="New" Value="3"></asp:ListItem>
                            </asp:DropDownList>

现在当我选择标记时,在选择新建或全部后,它没有命中

【问题讨论】:

  • 在调试时,当您选择“全部”时,ddCompanyFilter.SelectedValue 中的值是什么??
  • 如何设置 start Value="0"Value="1" 然后 2, 3 ?
  • 那么,您首先选择 Flagged/New 并且它可以工作,然后选择 All 之后它没有做任何事情?或者您是否尝试在第一次选择全部时选择全部
  • 当我选择全部时,它没有点击代码
  • @zey 我试过你的解决方案,但还是同样的问题

标签: c# asp.net


【解决方案1】:

这是下拉列表中的一个已知问题,总是第一个列表项不会触发,这就是为什么您可以在开头添加一个虚拟列表项,例如“Select..”或您想让它工作的任何内容

<asp:UpdatePanel ID="panel" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="ddFilter" EnableViewState="false" runat="server" Style="width: 168px;
            border: none;" OnSelectedIndexChanged="ddComapanyFilter_SelectedIndexChanged"
            AutoPostBack="true">
            <asp:ListItem Text="whatever" value=""></asp:ListItem>
            <asp:ListItem Text="All" Value="0"></asp:ListItem>
            <asp:ListItem Text="Flagged" Value="1"></asp:ListItem>
            <asp:ListItem Text="New" Value="2"></asp:ListItem>
        </asp:DropDownList>
    </ContentTemplate>
</asp:UpdatePanel>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2021-09-17
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多