我在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时,它没有做任何事情,我已经尝试调试它,以防所有它没有命中代码。
我试过用这个
替换我的下拉代码<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>
现在当我选择标记时,选择新建或全部后,它没有点击
答案 0 :(得分:2)
这是dropdownlist中的一个已知问题,总是第一个列表项不会触发,这就是为什么你可以在开头添加一个虚拟列表项,如“选择..”或者你想让它工作的原因
<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>