2010-09-15 22 views
5

Điều tôi mong đợi từ hành vi chọn nhiều lần là hoạt động bình thường miễn là nhấn phím đặc biệt. Ý tôi là, nếu bạn đã chọn một hàng và nhấp vào một hàng khác mà không có phím nào khác được nhấn, thì bạn nên chọn hàng mới và bỏ chọn hàng cũ. Vâng, các tùy chọn tiêu chuẩn của jqGrid cho phép bạn chọn giữa hành vi luôn hoạt động thường xuyên hoặc luôn chọn nhiều lựa chọn. Bạn không thể chọn nhiều lần khi nhấn một phím đặc biệt.jqGrid hành vi chọn nhiều lần khi nhấn phím đặc biệt

Có cách nào tôi có thể đạt được điều này không?

Trả lời

5

jqGrid có một số chiến lược lựa chọn, tất cả đều sử dụng multiselect:true. Để minh họa ở đó, tôi đã tạo ba ví dụ:

  1. Nếu bạn chỉ xác định multiselect:true: http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect2.htm. Đây là hành vi tiêu chuẩn mà bạn không thích.
  2. Nếu bạn xác định bổ sung multiboxonly:true: http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect3.htm. Dường như với tôi rằng hành vi này là những gì bạn cần.
  3. Nếu bạn xác định bổ sung multikey:"ctrlKey": http://www.ok-soft-gmbh.com/jqGrid/DataToMultiSelect4.htm. Trong trường hợp hàng sẽ được chọn hoặc bỏ chọn chỉ khi Ctrl được nhấn.

Nếu tôi hiểu chính xác câu hỏi của bạn, bạn nên xác định cả hai multiselect:truemultiboxonly:true để nhận hành vi bạn thích.

Nếu tôi hiểu lầm câu hỏi của bạn và bạn có ý nghĩa gì đó khác, hãy mô tả điều này theo cách khác dựa trên các ví dụ trên.

+0

cảm ơn! @Oleg ... multiboxonly: true có nghĩa là tôi không thể ẩn hộp kiểm .. kể từ khi tôi đang ẩn hộp kiểm nhiều lựa chọn của mình bằng cách sử dụng ('hidecol', 'cb') .. có thể thực hiện được khi ẩn hộp kiểm không? – paul

+0

Tôi có thể đạt được bằng cách sử dụng beforeSelectRow như beforeSelectRow: function (rowid, e) { if (! E.ctrlKey) { $ ("# list10"). ResetSelection(); } trả về true; } và chỉ cần thiết lập multiselect: true ..... cho tôi biết nếu tôi làm gì sai – paul

0

Tôi vừa bắt gặp cùng một câu hỏi muốn bằng cách nào đó bắt chước một hành vi như thế này: - Single-chọn về cách nhấn vào liên tiếp của một jqGrid - Multi-chọn khi key-nhấp chuột vào một hàng (như Ctrl + click)

Giải pháp của tôi sử dụng sự kiện "beforeSelectRow" của jqGrid whoch chuyển sự kiện nhấp chuột tới trình xử lý của nó. Trình xử lý phân biệt giữa nhấp chuột đơn giản và "được khóa". Một nhấp chuột có khóa được chuyển qua, một cú nhấp chuột đơn giản trước tiên sẽ loại bỏ lựa chọn trước đó, hơn là cho phép sự kiện phát ra bong bóng.

Tất nhiên bạn có thể muốn rút ngắn điều này một chút, nhưng theo cách đó dường như rõ ràng hơn, tôi nghĩ vậy.

Bạn không cần tùy chọn đa cấp hoặc đa hộp cho việc này. Tùy chọn đa lựa chọn phải được đặt thành true, tất nhiên.

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