Tôi có một điều khiển GridView trên trang web của mình, sử dụng phân trang. Tôi thấy dường như hàng trùng lặp xuất hiện, nhưng tôi biết họ không có trong dữ liệu, và họ dường như biến mất bất cứ khi nào tôi sắp xếp trên một cột khác nhau từ một mặc định tôi đang sử dụng. Tuy nhiên, chúng xuất hiện lại khi sắp xếp lại cột gốc này.Hàng hiển thị nhiều lần trong GridView
Dưới đây là một đoạn mã 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" />
Điều đó có thể không liên quan đến vấn đề của tôi, nhưng tôi chỉ đưa vào trường hợp này.
Bây giờ, tôi tin rằng vấn đề có thể được gây ra bởi vì có một trường hợp cụ thể trong đó cột được sắp xếp theo mặc định, sẽ được điền bằng giá trị giống nhau cho nhiều hàng. Điều đó nghe có vẻ kỳ lạ, nhưng cột là một khoảng cách gần và lưới hiển thị kết quả tìm kiếm lân cận, vì vậy có thể một số tìm kiếm sẽ trả lại nhiều kết quả với cùng khoảng cách.
Vấn đề kết quả trùng lặp chỉ xảy ra khi số hàng có khoảng cách giống nhau vượt quá số kết quả được hiển thị trên mỗi trang (trong trường hợp của tôi là 10).
Bất cứ khi nào điều này xảy ra, tôi thấy một hàng xuất hiện, ví dụ: trang thứ 2 và cũng trên trang thứ 3 (không bao giờ trên cùng một trang). Sắp xếp trên một cột khác nhau và phân trang thông qua các kết quả có vẻ để loại bỏ vấn đề.
Bây giờ, sau nhiều giao diện đầu/tường, tôi đã đưa ra giải thích đầu cơ;
Đó là hành vi được mong đợi hoàn toàn vì không có cách nào được chỉ định để sắp xếp các hàng khi các trường giống nhau. Một số cơ chế khác phải quyết định cách sắp xếp các hàng và bất kỳ cơ chế nào này gây ra vấn đề trùng lặp bất cứ khi nào phân trang thông qua kết quả.
Tôi có đi đúng hướng ở đây không? Và nếu có, làm thế nào tôi có thể giải quyết vấn đề này? Có cách nào để sắp xếp trên cột phụ ngoài người dùng được chỉ định không?
Cảm ơn, tôi sẽ xem xét vào một trong những phương pháp tiếp cận. Tôi sẽ cần phải làm việc mọi thứ theo cách mà trường thứ cấp này được sử dụng ngay cả khi người dùng đặt hàng lại lưới từ giao diện người dùng, nhưng tôi sẽ làm việc gì đó. –