2010-09-16 51 views
16

Dường như các thuộc tính jqGrid sortnamesortorder không thực sự làm cho tập dữ liệu của bạn được sắp xếp - chúng chỉ làm cho các mũi tên lên/xuống được hiển thị.jqGrid sắp xếp thứ tự mặc định?

Làm cách nào để tập dữ liệu của bạn sắp xếp khi tải xuống?

Sắp xếp hoạt động tốt khi bạn nhấp vào tiêu đề cột nhưng tôi muốn sắp xếp mặc định được áp dụng cho dữ liệu của chúng tôi.


Cập nhật: Khi chúng tôi nhấp vào nút tiếp theo, yêu cầu tiếp theo sắp xếp dữ liệu.

Điều này gây ra giao diện người dùng hơi khó hiểu khi dữ liệu tải với mũi tên xuống trên cột - và dữ liệu không được sắp xếp - nhưng khi bạn nhấp vào tiếp theo, dữ liệu hiện được sắp xếp.

Dường như nếu tôi bỏ qua tên phân loại và thứ tự sắp xếp mà jqGrid vẫn hiển thị biểu tượng sắp xếp - lạ.

Trả lời

2

Cố gắng sử dụng

$("#list").jqGrid('setGridParam',{ page: 1 }).trigger("reloadGrid"); 

hoặc

$("#list").jqGrid('setGridParam',{ rowNum: 10 }).trigger("reloadGrid"); 

(thay thế 10 đến giá trị mà bạn định nghĩa như tham số ROWNUM). Nếu nó sẽ không giúp bạn sau đó đăng mã của bạn trong câu hỏi của bạn.

+0

Bạn có đề xuất chúng tôi tải lưới hai lần không? Tải ban đầu (không được sắp xếp) và tải thứ hai mà hy vọng sẽ được sắp xếp? –

+0

@Marcus: Bạn không chèn bất kỳ mã nào vào câu hỏi của mình vì vậy tôi phải đoán bạn sẽ làm gì. Bạn tải dữ liệu JSON hoặc XML từ máy chủ, máy chủ sắp xếp dữ liệu, vì vậy bạn nên sửa mã máy chủ của mình. Nếu bạn tải dữ liệu từ nguồn cục bộ hoặc tải từ máy chủ dưới dạng ** chưa được phân loại ** với "loadonce: true", bạn nên ** sắp xếp ** dữ liệu một lần. Để làm điều này, bạn phải làm mới dữ liệu được hiển thị trong trang hiện tại ot lưới. Bạn có thể làm điều này liên quan đến 'trigger (" reloadGrid ")' - trong trường hợp dữ liệu cục bộ, nó chỉ là "refresh" trang hiện tại. Đôi khi, việc thiết lập các thông số như 'page' hoặc' rowNum' giúp – Oleg

+0

Chúng tôi đang tải dữ liệu chưa được phân loại từ máy chủ bằng 'loadonce: true'. Sẽ thử 'kích hoạt ... ' –

1

vấn đề là (Tôi tin) rằng sortName tham số cũng không sidx được đọc khi yêu cầu dữ liệu đầu tiên thiết lập

2

Bạn có thể đã thực hiện các sai lầm tương tự như bản thân mình, mà là căn cứ kịch bản khách hàng của tôi tắt của một tuổi ví dụ sử dụng "sortName" thay vì "sortname"

+0

Đây là câu trả lời đúng. Lưới của tôi đang vượt qua tiêu chí sắp xếp lần đầu tiên nó yêu cầu dữ liệu. Các thuộc tính là sortname và sortorder. – jfren484

0

/Cheesy Answer Alert

Tại sao không ẩn biểu tượng được sắp xếp khi bạn tải lần đầu tiên? Lần đầu tiên ai đó sắp xếp, bỏ ẩn nó và mọi thứ hoạt động như dự định. Có vẻ như ý định của bạn là tải chưa được phân loại cho đến khi người dùng chọn một cột để sắp xếp.

+0

Tôi sắp xếp đồng ý với giải pháp này ... sắp xếp lần đầu tiên sử dụng mã phía máy chủ để nó hiển thị chính xác khi được tải nếu bạn muốn nó được sắp xếp ban đầu. Đặt cột tìm kiếm mặc định hoặc ẩn/hiển thị (http://stackoverflow.com/questions/2601476/is-it-possible-to-hide-or-manipulate-the-jqgrid-sort-icons) cột sắp xếp sau người dùng quyết định sắp xếp dựa trên hướng đi của bạn. –

13

Bạn có thể đưa ra cùng một tham số hai lần (một lỗi rất phổ biến khi sao chép dán progrraming :) không có vi phạm. Tôi làm điều đó quá.)

Giả sử bạn muốn sắp xếp theo OpeningDate giảm dần

..... options .... 
sortname: "OpeningDate", 
sortorder: "desc", <---- assume you write this line and expect to sort descending 
..... some other options .... 
sortorder: "asc", <---- and this line may also be there but you may not be noticing it 
..... and other options .... 

thứ hai "SortOrder" tùy chọn ghi đè lên đầu tiên và bạn sẽ không thể để sắp xếp giảm dần

7

tôi đã phải đối mặt với vấn đề giống nhau. Sử dụng điều này sau khi tải dữ liệu:

$("#tableId").jqGrid('sortGrid','colName', false, 'asc'); 

hoặc

$("#tableId").sortGrid('colName', false, 'asc'); 

Lưới điện được nạp lại nếu giá trị boolean được thiết lập là true. Tham số cuối cùng có thể là 'asc'/'desc', tùy thuộc vào thứ tự sắp xếp.

Các vấn đề liên quan