در برنامههای عمومی تحت وب غالبا نیازی به این صورت وجود دارد که تعدادی از ردیفها در جدول باید توسط کاربر انتخاب شوند و بر روی آنها عملیاتی انجام شود. مثلا برای افزودن گروههای کاربری به کاربر به صورت که لیستی از گروههای کاربری در اختیار کاربر قرار میگیرد و کاربر با انتخاب تعدادی از آنها، گروهها را برای کاربر اضافه مینماید. در این شرایط ما نیاز داریم که ردیفهای انتخاب شده را از جدول گرفته و سپس عملیات مورد نیاز را بر روی آنها انجام دهیم. برای تشریح این موضوع مثالی به این صورت انجام میگیرد که از بین لیست کارمندان آنهایی که انتخاب گردیده اند نامشان در کنسول چاپ میگردد.
شرح
در ابتدا یک صفحه شامل لیست کارمندان با استفاده از کامپوننت جدول بسازید. پس از ایجاد صفحه ویژگیهای مشخص شده در تصویر زیر را همانند تصویر تغییر دهید.
*دلیل حذف مقدار SelectedRowKeys این میباشد که آخرین ردیف کلیک شده بر روی آن را در ردیفهای انتخاب شده قرار میدهد و به همین دلیل دیگر نمیتوان سایر ردیفهایی که قبلا انتخاب شدهاند را گرفت. پس مهم است که حتما آنرا حذف نمایید.
پس از آماده سازی صفحه حال یک backing bean با نام RowManipulate ایجاد نمایید. این backing bean دارای یک فیلد به نام employTbl از نوع RichTable میباشد. برای این فیلد Accessors های آنرا ایجاد نمایید. یک متد نیز با نام getSelectedRows ایجاد کنید و کد زیر را درون آن قرار دهید.
RowKeySet selectedEmps = getEmployTbl().getSelectedRowKeys();<br />
Iterator selectedEmpIter = selectedEmps.iterator();<br />
DCBindingContainer bindings =<br />
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();<br />
DCIteratorBinding empIter =<br />
bindings.findIteratorBinding("EmployeesView1Iterator");<br />
RowSetIterator empRSIter = empIter.getRowSetIterator();<br />
while(selectedEmpIter.hasNext()){<br />
Key key = (Key)((List)selectedEmpIter.next()).get(0);<br />
Row currentRow = empRSIter.getRow(key);<br />
System.out.println(currentRow.getAttribute("LastName"));<br />
}<br />
return null;سپس درون صفحه یک دکمه قرار دهید و آنرا به getSelectedRows وصل نمایید تا به محض کلیک متد را فراخوانی نماید.
جدول درون صفحه را به فیلد employTbl درون backing bean وصل نمایید.
* کل عملیات اتفاق افتاده در متد getSelectedRows به این شرح میباشد که با استفاده از متد getSelectedRowKeys کلید تمام ردیفهای انتخاب شده در جدول را گرفته ایم. سپس بر روی View کارمندان با استفاده از کلید ردیفهای انتخاب شده تک تک آنها را جستجو کرده ایم و در نهایت نام آنها را استخراج و در کنسول چاپ کرده ایم
تبریک میگویم شما با موفقیت تمام کارهای موردنیاز را انجام دادید . حال کافیست برنامه را تست نمایید.
امیدوارم مطلب براتون مفیده بوده
با تشکر
فایل PDF
فایل مثال
رویال ویژن








سپس یک دکمه با action برابر asDialog در صفحه قرار میدهیم و سایر ويژگیهای دکمه را همانند تصویر زیر تنظیم مینماییم
در مرحله بعد یک task flow ایجاد مینماییم که شامل یک صفحه خواهد بود. صفحه مذکور شامل یک دکمه بازگشت میباشد که action آن برابر با Return قرار گرفته شده است. Task flow را همانند تصویر زیر آماده نمایید

نظر خود را وارد کنید: