单击菜单时禁用“PostBack”

本文关键字:PostBack 菜单 单击 | 更新日期: 2023-09-27 17:59:50

我在UpdatePanel中进行了分页。

我有一个下拉列表,控制哪个字段将被排序。

我添加了排序按钮和分页菜单作为AsyncPostBackTriggers。我的排序按钮工作正常,但我的分页菜单每次单击都会将排序下拉列表重置为默认值。当我浏览代码时,我可以看到排序按钮会触发(!IsPostBack)部分,而分页菜单会触发页面加载的"Else"部分。

所以,我可以点击任何页面,它工作得很好。我可以排序,它将返回该页面的正确记录。当我再次单击页码时,排序将返回到默认值。我想让我的用户排序一次,然后浏览排序后的数据。

那么,如何关闭菜单上的PostBack?

我的相关代码如下:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server" >
<table>
    <tr>
        <td width="150">
            <asp:DropDownList ID="cboSortBy" runat="server" Width="120" ViewStateMode="Enabled">
                <asp:ListItem Value="StatusText">Benefit Type</asp:ListItem>
                <asp:ListItem Value="PRIORITY_RANK">Priority Rank</asp:ListItem>
                <asp:ListItem Value="ACTIVE_FLG">Active Flag</asp:ListItem>
            </asp:DropDownList>
        </td>
        <td width="180"><asp:Button ID="btnSort" runat="server" 
            Text="Sort" Width="121px" onclick="btnSort_Click" /></td>
    </tr>
</table>
<asp:Label ID="Label1" runat="server" Font-Bold="True" />
<br />
<div class="clear" id="NavDiv" style="width:1000px; margin:0 auto; display: table;">
    <asp:Menu ID="NavMenu" runat="server" CssClass="navmenu" 
        IncludeStyleBlock="false" Orientation="Horizontal" width="703px"
        BackColor="#CC3300">
        <Items> 
            <asp:MenuItem NavigateUrl="~/Default.aspx" Text="First" Selectable="true" />
        </Items>
    </asp:Menu>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
<table width="570">
<tr>
<td>
<asp:UpdatePanel ID="SearchPanel" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="NavMenu" />
        <asp:AsyncPostBackTrigger ControlID="btnSort" EventName="Click" />
    </Triggers>
    <ContentTemplate>
    <asp:Repeater ID="BenTypeRepeater" runat="server" onitemcommand="Repeater2_ItemCommand">
        <HeaderTemplate>
        <table>
            <tr bgcolor="#007ACC" style="color:White">
                <td></td>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td colspan = "2"></td>
            <tr>
        </ItemTemplate>
        <SeparatorTemplate>  
            <tr>  
                <td colspan="5"></td>  
            </tr>  
        </SeparatorTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>

单击菜单时禁用“PostBack”

AutoPostBack="true"添加到下拉

<asp:DropDownList ID="cboSortBy" runat="server" Width="120" ViewStateMode="Enabled" AutoPostBack="true">
        <asp:ListItem Value="StatusText">Benefit Type</asp:ListItem>
        <asp:ListItem Value="PRIORITY_RANK">Priority Rank</asp:ListItem>
        <asp:ListItem Value="ACTIVE_FLG">Active Flag</asp:ListItem>
</asp:DropDownList>