当页面下拉列表选择索引更改时,保存gridview的当前页面

时间:2012-06-04 13:08:05

标签: asp.net

我正在使用多页面gridview来显示大量数据。这是gridview的代码。

<asp:GridView ID="unverifiedlist" runat="server" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true"  OnRowDataBound="unverifiedlist_RowDataBound" style="font-size:12px" >
                        <Columns><asp:BoundField HeaderText="Surname" DataField="Surname" ReadOnly="true"/></Columns>
                        <Columns><asp:BoundField HeaderText="Firstname" DataField="Givenname" ReadOnly="true"/></Columns>
                       ......
                        <Columns><asp:TemplateField HeaderText="Options" >
                                    <ItemTemplate>
                                        <asp:DropDownList ID="options" runat="server" AutoPostBack="true" OnSelectedIndexChanged="options_SelectedIndexChanged">
                                            <asp:ListItem></asp:ListItem>
                                            <asp:ListItem Value="1">Verified</asp:ListItem>
                                            <asp:ListItem Value="2">Rejected</asp:ListItem>
                                        </asp:DropDownList>
                                    </ItemTemplate>
                                 </asp:TemplateField>
                                 <asp:TemplateField HeaderText ="Reason">
                                    <ItemTemplate>
                                        <asp:TextBox ID="reason" runat="server" OnTextChanged ="reason_TextChanged"></asp:TextBox>
                                    </ItemTemplate>
                                 </asp:TemplateField>
                        </Columns>
                        <PagerSettings Visible="false"/>            
            </asp:GridView>


<asp:DropDownList ID="PageSelect" AutoPostBack="true" runat="server" OnSelectedIndexChanged="PageSelect_SelectedIndexChanged"></asp:DropDownList>

有一个名为&#34;选项的列#34;其中包含一个下拉列表,每次更改所选索引以保存已编辑的行时,它都会回发。我试图避免这种频繁的回发。所以我想如果我可以在用户转到下一页之前保存整个页面。 问题是&#34; PageSelect&#34; dropdownlist的回发将首先触发页面重新加载,然后选择onselectedindexchanged事件,此时,gridview已经转到下一页面。那么有人可以给我一些建议吗?

2 个答案:

答案 0 :(得分:0)

您可以将网格视图的EnableSortingAndPagingCallBacks属性设置为true,但如果您在gridview中使用模板字段,则无法工作,为了维护页面状态,您必须在会话中保留当前页面的值,在页面加载时,您可以检查会话..

答案 1 :(得分:0)

我最后使用了gridview本身的分页导航控件而不是我的下拉列表。然后我可以使用pageindexchanging事件将当前页面保存到会话中,然后再转到下一页