2

Autopost back プロパティを true に設定して Updatepanel 内で DropDownList を使用しています。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
    }          
}

新規またはフラグ付きを選択すると正常に動作しますが、再度すべてを選択すると何もしません。すべてがコードにヒットしない場合に備えて、デバッグを試みました。

ドロップダウンコードをこれに置き換えてみました

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

今、フラグ付きを選択しているときに、新規またはすべてを選択した後、ヒットしません

4

1 に答える 1

2

これはドロップダウンリストの既知の問題です。常に最初のリスト項目が起動しないため、「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>
于 2013-08-03T10:59:01.977 に答える