2012-02-21 38 views
5

Cần nắm bắt hàngChọn sự kiện của một dataTable có lựa chọn hàng dựa trên hộp kiểm. Mã này như sau:Sự kiện RowSelect - Primefaces - dataTable

<p:ajax event="rowSelect" listener="#{articleBean.onRowSelect}" 
        oncomplete="articleBean.onSelection" /> 
<p:ajax event="rowUnselect" listener="#{articleBean.onRowUnselect}" 
        oncomplete="articleBean.onSelection" /> 
<p:column id="name" headerText="Select" selectionMode="multiple" 
        style="width:18px" /> 

Tôi không thể hiểu hành vi. Khi tôi nhấp vào hộp kiểm lần đầu tiên, phương thức "onRowSelect" sẽ được gọi. Khi tôi bỏ chọn, "onRowUnselect" không được gọi. Và cũng có thể, phương thức "onRowSelect" được gọi chỉ một lần cho lưới, như trong, nếu tôi nhấp vào bất kỳ hộp kiểm nào khác, sự kiện đó sẽ không được kích hoạt. Tôi đang bỏ lỡ bất cứ điều gì? Không thể hiểu hành vi này.

Cảm ơn, Shikha

+0

Liệu nó có tác dụng nếu bạn làm mới trang sau lựa chọn đầu tiên? –

+0

@Matt Có, nó hoạt động cho lựa chọn đầu tiên sau khi được làm mới. –

+0

Tôi không thấy bất kỳ lệnh cập nhật nào trong 'p: ajax'. Vì vậy, chỉ có phần tử hiện tại sẽ được cập nhật. Bạn có thể thử đặt 'update =" @ form "' nếu điều này có thể xảy ra trong trường hợp của bạn. –

Trả lời

14

Như bạn đang sử dụng DataTable với hộp kiểm có trụ sở lựa chọn hàng sau đó bạn nên thay thế:

<p:ajax event="rowSelect" 
<p:ajax event="rowUnselect" 

Với những điều sau đây:

<p:ajax event="rowSelectCheckbox" 
<p:ajax event="rowUnselectCheckbox" 
+0

Có sự kiện nào cho "chọn tất cả" qua hộp kiểm trong tiêu đề dataTable không? Các sự kiện 'rowSelectCheckbox' và' rowUnselectCheckbox' này không hoạt động trong trường hợp này. – Micer

+5

Ok sự kiện là 'toggleSelect' (Khi hộp kiểm tiêu đề được bật.) – Micer

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