单击菜单关闭PostBack?

时间:2015-06-26 14:41:30

标签: c# asp.net menu pagination

我在UpdatePanel中有分页。

我有一个下拉列表,用于控制将对哪个字段进行排序。

我已将sort按钮和分页菜单添加为AsyncPostBackTriggers。我的排序按钮工作正常,但我的分页菜单会在每次单击时将排序下拉列表重置为默认值。当我单步执行代码时,我可以看到sort按钮触发(!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>

1 个答案:

答案 0 :(得分:0)

AutoPostBack =&#34; true&#34; 添加到下拉菜单

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