View Full Version : سوال: f:selectItems
armin20
چهارشنبه 23 تیر 1389, 10:46 صبح
سلام
یه
<h:selectManyListbox size="5" >
<f:selectItems value="#{calcView.calcs}" />
</h:selectManyListbox>
دارم که یه سری value بهش اضافه میشه
برای اینکه موارد select شده از این لیست رو بدست بیارم طرف bean باید چه کار کرد؟(مثل اینکه کاربر 3 تا از item هارو انتخاب کرده و میخام اون 3 تارو حذف کنم)
behrooj
پنج شنبه 24 تیر 1389, 12:15 عصر
فرض کنیم شما به این شکل استفاده میکنید:
<h:selectManyListBox id="someId" value="#{myBean.selectedItems}" converter="javax.faces.Integer">
<f:selectItems items="#{calcView.calcs}">
</f:selectItems>
</h:selectManyListBox>
به این شکل حالا در myBean خواهیم داشت:
private Integer[] selectedItems;
public Integer[] getSelectedItems() {
return this.selectedItems;
}
public void setSelectedItems(Integer[] selectedItems) {
this.selectedItems = selectedItems;
}
یک نکتهی ظریف هم هست که شما باید بتونید از روی calcView.calcs مقدار selectedItems تشکیل بدید. این برای زمانی مفیده که شما نیاز دارید هنگامی که وارد صفحه میشید، مقادیر مورد نظر انتخاب شدهباشند؛ به طور مثال در myBean:
private CalcView ref;
public Integer[] getSelectedItems() {
if (selectedItems != null) {
return selectedItems;
}
Map options = ref.getCalcs();
List selectedOptions = new ArrayList();
for (Map.Entry e : options.entrySet()) {
if (check(e.getKey(), e.getValue()) {
selectedOptions.add(e.getValue());
}
}
selectedItems = selectedOptions.toArray();
return selectedItems();
}
امیدوارم که مفید باشه؛ متاسفانه فرصت نکردم که مراجع رو برای این موضوع دابلچک کنم، اگه اشکالی باشه دوستان اشاره میکنند.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.