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>
今、フラグ付きを選択しているときに、新規またはすべてを選択した後、ヒットしません