我有这个下拉列表:
<asp:DropDownList id="ddlSort" runat="server" EnableViewState="true" OnSelectedIndexChanged="ApplyFilters" AutoPostBack="True">
<asp:ListItem Value="0">Sort By Relevancy</asp:listitem>
<asp:ListItem Value="1">Sort By Product Code</asp:listitem>
<asp:ListItem Value="2">Sort By Product Description</asp:listitem>
<asp:ListItem Value="3">Sort By Price - Lowest</asp:listitem>
<asp:ListItem Value="4">Sort By Price - Highest</asp:listitem>
</asp:dropdownlist>
我正在将选项设置为在if (!Page.IsPostBack)
默认为“0”的 Page_Load 中初始选择。如果我选择Sort By Product Code
(或任何其他选项),它将ApplyFilters
毫无问题地调用。如果我随后将 Drop Down 更改为第一个选项,则会触发 AutoPostBack 但它不会进入ApplyFilters
代码。
如果我将标记更改为:
<asp:DropDownList id="ddlSort" runat="server" EnableViewState="true" OnSelectedIndexChanged="ApplyFilters" AutoPostBack="True">
<asp:ListItem Value="-1">First Option</asp:listitem>
<asp:ListItem Value="0">Sort By Relevancy</asp:listitem>
<asp:ListItem Value="1">Sort By Product Code</asp:listitem>
<asp:ListItem Value="2">Sort By Product Description</asp:listitem>
<asp:ListItem Value="3">Sort By Price - Lowest</asp:listitem>
<asp:ListItem Value="4">Sort By Price - Highest</asp:listitem>
</asp:dropdownlist>
然后在选择任何其他选项后选择按相关性排序将正常工作,但选择第一个选项不会(如第一个示例中所示)。
我正在使用 ASP.NET 2.0。
- 我检查了控件层次结构并为所有控件启用了视图状态。
- 我已经尝试明确设置 EnableViewState="true" 没有任何成功。
有没有人有任何想法,因为我在这方面看到的所有信息都表明视图状态是错误的并且在更新面板中 - 在我的情况下,这两者都不是真的。
编辑:我现在已经将一个虚拟条目作为第一个条目,但这并不理想。