这是我在一类建筑代码:斯卡拉列表validSelectValues没有更新
object province extends MappedLongForeignKey(this, Province) {
override def dbColumnName = "province_id"
def selectValues: Box[List[(String, String)]] =
Full((("0", "")) +: Province.findAll(OrderBy(Province.name, Ascending)).
map(p => (p.id.is.toString, p.name.is)))
override def _toForm: Box[Elem] = Full(selectValues.flatMap{
case Nil => Empty
case xs => Full(SHtml.ajaxSelect(xs, Full(this.is.toString), v => {
this.set(v.toLong)
JsCmds.ReplaceOptions("council_select",
councilsList(v).map(c => (c.id.is.toString, c.name.is)), None)
}))
}.openOr(<span>{"sin provincias"}</span>))
private def councilsList(p: String) = p match {
case id if id != "" =>
Council.findAll(By(Council.province, p.toLong),
OrderBy(Council.name, Ascending))
case _ => List()
}
}
// Council
object council extends MappedLongForeignKey(this, Council) {
override def dbColumnName = "council_id"
val id = "council_select"
override def validSelectValues: Box[List[(Long, String)]] =
Full(((0l, "")) +: Council.findAll(By(Council.province, province),
OrderBy(Council.name, Ascending)).
map(c => (c.id.is, c.name.is)))
override def _toForm: Box[Elem] = Full(validSelectValues.flatMap{
case Nil => Empty
case xs => Full(SHtml.selectObj(xs, Full(this.is), this.set, "id" -> id))
}.openOr(<select id={id}/>))
}
在编辑表格,当我改变列表上的省议会名单由省过滤器更换完美,但是当我保存建筑物,councill不会首次保存/更新。接下来的时间,因为全省已经安置,所以省下来,直到我省其他时间...所以,当我设立一个新的省份时,省政府并没有得救,我需要省2次,省1次,省1次。理事会。
我认为这个问题是因为对象理事会的validSelectValues,是我第一次加载页面时加载的,并且它将按省省过滤,或者在没有设置省时省略空列表...我怎么能当我更改省名单时,重新加载市议会validSelectValues?
感谢
谢谢,但我在省toForm改变ajaxSelect通过ajaxUntrustedSelect和不工作。问题不是省,它很好地保存了所有的时间。问题是保存委员会:当我改变省和议会名单重新加载时,我选择一个委员会,并试图保存建筑物,省省,议会不是。我必须省2次,省1次,理事会1次。如果我改变理事会而不改变省,它可以完美保存 – user3313534