Ho un controllo GridView sulla mia pagina Web che utilizza il paging. Sto vedendo apparentemente delle righe duplicate che appaiono, ma so che non sono nei dati, e sembrano scomparire ogni volta che ordino su una colonna diversa da quella di default che sto usando. Tuttavia, riappaiono quando si ordina di nuovo su questa colonna originale.Righe visualizzate più volte in GridView
Ecco un frammento dell'ascx;
<asp:GridView
ID="gvResults"
AllowPaging="True"
CssClass="DataTable"
runat="server"
AutoGenerateColumns="False"
OnRowDataBound="gvResults_RowDataBound"
AllowSorting="True"
Width="750px"
OnSorting="gvResults_Sorting"
PagerSettings-Mode="NumericFirstLast"
PagerSettings-FirstPageText="<<"
PagerSettings-LastPageText=">>"
PagerSettings-PageButtonCount="5"
PagerSettings-Position="Bottom"
PagerStyle-CssClass="paginationContainer"
PagerStyle-HorizontalAlign="Left"
OnPageIndexChanging="gvResults_PageIndexChanging">
<PagerSettings
FirstPageText="<<"
LastPageText=">>"
Mode="NumericFirstLast"
PageButtonCount="5" />
<PagerStyle CssClass="paginationContainer" HorizontalAlign="Left" />
Questo potrebbe essere irrilevante per il mio problema, ma lo includo per ogni evenienza.
Ora, credo che il problema potrebbe essere causato dal fatto che esiste uno scenario particolare in cui la colonna su cui la griglia è ordinata per impostazione predefinita, verrà popolata con un valore identico per molte righe. Potrebbe sembrare strano, ma la colonna è una prossimità e la griglia visualizza i risultati della ricerca di prossimità, quindi è possibile che alcune ricerche restituiscano molti risultati con la stessa vicinanza.
Il problema dei risultati duplicati si verifica solo quando il numero di righe con una prossimità identica supera il numero di risultati visualizzati per pagina (nel mio caso 10).
Ogni volta che succede, vedo apparire una riga, ad es. la seconda pagina e anche la terza pagina (mai sulla stessa pagina). Ordinare su una colonna diversa e sfogliare i risultati sembra sradicare il problema.
Ora, dopo molte interfacce testa/muro, sono arrivato a una spiegazione speculativa;
Che questo è un comportamento totalmente previsto perché non esiste un modo specifico per ordinare le righe quando i campi sono identici. Qualche altro meccanismo deve decidere come ordinare le righe e qualunque sia il meccanismo causa il problema di duplicare ogni volta che sfoglia i risultati.
Sono sulla pista giusta qui? E se sì, come posso risolvere questo problema? C'è un modo per ordinare su una colonna secondaria oltre a quella specificata dall'utente?
Grazie, mi prendo uno sguardo in uno di questi approcci. Avrò bisogno di lavorare le cose in modo tale che questo campo secondario venga usato anche quando l'utente riordina la griglia dall'interfaccia utente, ma lavorerò su qualcosa. –