C# gridview排序顺序在编辑行时更改

C# gridview排序顺序在编辑行时更改,c#,asp.net,C#,Asp.net,我有一个gridview,它只是根据dropdownlist中的过滤器显示记录,当我更改dropdownlist时,页面回发良好,过滤器工作正常,但当我单击编辑行时,排序顺序会根据新过滤器更改。当我将下拉列表更改回原始过滤器并单击“编辑”时,排序顺序保持不变 有什么想法吗 <asp:DropDownList ID="ddlFilterDocs" runat="server" AutoPostBack="True"

我有一个gridview,它只是根据dropdownlist中的过滤器显示记录,当我更改dropdownlist时,页面回发良好,过滤器工作正常,但当我单击编辑行时,排序顺序会根据新过滤器更改。当我将下拉列表更改回原始过滤器并单击“编辑”时,排序顺序保持不变

有什么想法吗

<asp:DropDownList ID="ddlFilterDocs" runat="server" 
                     AutoPostBack="True" 
                     onselectedindexchanged="ddlFilterDocs_SelectedIndexChanged">
                                      <asp:ListItem Text="MissingData" 
Value="MissingData" >MissingData</asp:ListItem>
                                       <asp:ListItem Text="AllData" Value="AllData" 
>AllData</asp:ListItem>
           </asp:DropDownList>



<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                 AllowSorting="True" PageSize="35" 
                 AutoGenerateColumns="False" CellPadding="4" 
                 ForeColor="#333333" GridLines="None" 
                 onrowcommand="GridView1_RowCommand" DataKeyNames="customerCode" 
                 onpageindexchanging="GridView1_PageIndexChanging" 
                 onsorting="GridView1_Sorting">
                 <AlternatingRowStyle BackColor="White" />
                 <Columns>
                       <asp:TemplateField SortExpression="CustomerCode">
                         <ItemTemplate>
                            <asp:LinkButton ID="lbEdit" ForeColor="DarkGreen" Font-   
Bold="True" CommandArgument='<%# Eval("customerCode") %>' CommandName="EditRow" 
runat="server">Edit</asp:LinkButton>
                           </ItemTemplate>
                         <EditItemTemplate>
                                     <asp:LinkButton ID="lbUpdate" CommandArgument='<%# 
Eval("customerCode") %>' CommandName="UpdateRow" runat="server"  
ForeColor="White">Update</asp:LinkButton>
                             <asp:LinkButton ID="lblCancel" CommandArgument='<%# 
Eval("customerCode") %>' CommandName="CancelUpdate" runat="server"  
ForeColor="White">Cancel</asp:LinkButton>
                          </EditItemTemplate>
                           <HeaderStyle Width="100px" />
                     </asp:TemplateField>

                     <asp:TemplateField  HeaderText="Customer ID" 
SortExpression="CustomerCode">
                         <EditItemTemplate>
                             <asp:Label ID="lblCustCodeEdit" runat="server" Text='<%# 
Eval("CustomerCode") %>'></asp:Label>
                         </EditItemTemplate>
                         <ItemTemplate>
                             <asp:Label ID="lblCustCode" runat="server" Text='<%# 
Bind("CustomerCode") %>'></asp:Label>
                         </ItemTemplate>
                     </asp:TemplateField>
                     <asp:BoundField  DataField="Name" HeaderText="Name" 
SortExpression="Name" 
                           ReadOnly="True" >
                       <HeaderStyle Width="100px" />
                       </asp:BoundField>
                     <asp:TemplateField HeaderText="StreetAddress" 
SortExpression="StreetAddress">
                         <EditItemTemplate>
                             <asp:TextBox ID="tbxStreetAddress" runat="server" 
Text='<%# Bind("StreetAddress") %>'></asp:TextBox>
                         </EditItemTemplate>
                         <ItemTemplate>
                             <asp:Label ID="lblStreetAddress" runat="server" Text='<%# 
Bind("StreetAddress") %>'></asp:Label>
                         </ItemTemplate>
                         <HeaderStyle Width="150px" />
                     </asp:TemplateField>
                     <asp:TemplateField HeaderText="City" SortExpression="City">
                         <EditItemTemplate>
                             <asp:TextBox ID="tbxCity" runat="server" Text='<%# 
Bind("City") %>'></asp:TextBox>
                         </EditItemTemplate>
                         <ItemTemplate>
                             <asp:Label ID="lblCity" runat="server" Text='<%# 
Bind("City") %>'></asp:Label>
                         </ItemTemplate>
                         <HeaderStyle Width="100px" />
                     </asp:TemplateField>
                     <asp:TemplateField HeaderText="Zip" SortExpression="Zip">
                         <EditItemTemplate>
                             <asp:TextBox ID="tbxZip" runat="server" Text='<%# 
Bind("Zip") %>'></asp:TextBox>
                         </EditItemTemplate>
                         <ItemTemplate>
                             <asp:Label ID="lblZip" runat="server" Text='<%# 
Bind("Zip") %>'></asp:Label>
                         </ItemTemplate>
                         <HeaderStyle Width="50px" />
                     </asp:TemplateField>
                     <asp:BoundField DataField="DocNumber" HeaderText="DocNumber" 
                         SortExpression="DocNumber" ReadOnly="True">
                       <HeaderStyle Width="50px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="GrossAmount" HeaderText="Gross" 
                         SortExpression="GrossAmount"  ReadOnly="True" 
DataFormatString="{0:c2}"  >
                       <HeaderStyle Width="70px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="NetAmount" HeaderText="Net" 
                         SortExpression="NetAmount"  ReadOnly="True" DataFormatString="
{0:c2}" >
                       <HeaderStyle Width="70px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="VATAmount" HeaderText="VAT" 
                         SortExpression="VATAmount"  ReadOnly="True" DataFormatString="
{0:c2}" >
                       <HeaderStyle Width="70px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="FromVoucNbr" HeaderText="Voucher" 
                         SortExpression="FromVoucNbr"  ReadOnly="True" >
                       <HeaderStyle Width="70px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="LastModDate" HeaderText="Date" 
                         SortExpression="LastModDate"  ReadOnly="True" 
DataFormatString="{0:G}" >
                       <HeaderStyle Width="70px" />
                       </asp:BoundField>
                     <asp:BoundField DataField="LastModUser" HeaderText="LastModUser" 
                         SortExpression="LastModUser"   ReadOnly="True">
                       <HeaderStyle Width="50px" />
                       </asp:BoundField>
                 </Columns>
                 <EditRowStyle BackColor="#7C6F57" />
                 <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                 <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                 <PagerStyle BackColor="#666666" ForeColor="White" 
HorizontalAlign="Center" />
                 <RowStyle BackColor="#E3EAEB" />
                 <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" 
ForeColor="#333333" />
                 <SortedAscendingCellStyle BackColor="#F8FAFA" />
                 <SortedAscendingHeaderStyle BackColor="#246B61" />
                 <SortedDescendingCellStyle BackColor="#D4DFE1" />
                 <SortedDescendingHeaderStyle BackColor="#15524A" />
             </asp:GridView>

丢失数据
所有数据
编辑
更新
取消

如果要将数据重新绑定到行编辑事件中,则需要使用下拉选择值对其进行过滤


关于,

检查您是否在row_editing.nope上调用绑定数据方法。我重新绑定codebehind中的数据,无论从下拉过滤器中选择了两个选项中的哪一个,此过程都是相同的:private void BindGridViewData(){var results=iidal.getUnauthorizedInvoices(ddlFilterDocs.SelectedValue);GridView1.DataSource=results;GridView1.DataBind();}