[英]Keep the state or value of a DropDownChoice and TextField both inside a ListView
我已經實現了一個listView,每次在此ListView中添加一個新項時,插入textField並在DropDownChoice中選擇的值將丟失。
以下圖片顯示添加新ListView項之前和之后發生的情況:
添加新項目后:
我實現了以下代碼:
var listData = workSheetDAO.listWorkSheetUser(selectedUser, beginDate, endDate)
var lbPeriodTotal = new Label("periodTotal")
lbPeriodTotal.setOutputMarkupId(true)
add(lbPeriodTotal)
add(new ListView[WorkSheet]("listWorkSheet", listData) {
override protected def onBeforeRender() {
super.onBeforeRender()
}
def populateItem(item: ListItem[WorkSheet]) = {
var workSheet = item.getModelObject()
item.add(new LinkDate("initDate", workSheet, 1))
item.add(new LinkDate("endDate", workSheet, 1))
item.add(new TextField("description"))
val listCustomer: java.util.List[Customer] = customerDAO.listCustomers
item.add(new DropDownChoice("customerSelection", listCustomer, new ChoiceRenderer[Customer]("id")))
if (workSheet.endDate == None) {
item.add(new Label("total", ""))
} else {
var period = new Period(workSheet.initDate, workSheet.endDate.get)
periodTotal = periodTotal.plus(period)
lbPeriodTotal.setDefaultModel(new Model(periodTotal.toPeriod().normalizedStandard().toString(getFormatter())))
period = period.normalizedStandard()
item.add(new Label("total", period.toString(getFormatter())))
}
}
}
private class LinkDate(id: String, workSheet: WorkSheet, type: Int) extends Link[String](id) {
setEnabled(false)
add(new Label("label", new Model[String]() {
override def getObject(): String = {
var result = ""
if (type == 1) {
result = workSheet.initDate.toString("dd/MM/YYYY HH:mm:ss")
} else
result = workSheet.endDate.toString("dd/MM/YYYY HH:mm:ss")
return result
}
}))
def onClick() {}
}
保留的唯一值是標簽的值。
拜托,有人可以幫助我,謝謝
將新項目添加到列表后,您將刷新它,因此所有未保存的值都將丟失。 在您的情況下,將執行以下操作:
首先,保存更改數據(onblur / onchange或按鈕'save')。
其次,在填充時綁定描述和customerSelection,如下所示:
new TextField("description", new PropertyModel(obj, "description"))
new DropDownChoice("customerSelection", new PropertyModel(obj, "customer"), listCustomer, new ChoiceRenderer[Customer]("id")))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.