Напишите таблицу на лету - PullRequest
       21

Напишите таблицу на лету

0 голосов
/ 22 декабря 2009

У меня есть следующая функция, и я хотел бы написать на страницу вместо println. Как я могу это сделать? Мне нужна таблица с этой информацией на моей странице, но я не нашел никакой информации об этом, я видел, как записать коллекции на страницу, но я бы предпочел писать на страницу на лету.

Заранее спасибо, и я надеюсь на ваш ответ.

def tablaAmortizacion(xhtml:NodeSeq,monto:Double,amort:Double,start:java.util.Calendar) {
    var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy")
    var end = new java.util.GregorianCalendar()
    end.setTime(start.getTime)
    end.add(java.util.Calendar.MONTH,1)
    var difference = Math.abs(start.getTimeInMillis - end.getTimeInMillis)
    var days = difference / (1000 * 60 * 60 * 24)

    println("Monto sal: " + monto + "   Amortizacion: " + amort + "   Start: " + formatter.format(start.getTime)  + "   End: " + formatter.format(end.getTime) + "   Days: " + days)

    if (monto > amort) {
        tablaAmortizacion(xhtml,monto-amort,amort,end)
    }

}

Фернандо Авалос.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2009

Или вы можете сделать что-то подобное, когда создадите таблицу в методе.

def list = <table>
<thead>
<tr>
    <th>monto-amort</th>
    <th>amort</th>
    <th>end</th>
    <th/>
</tr>
</thead>
<tbody>
  {generateTableBody()}
</tbody>

def generateTableBody = {
//calculate values here.
<tr><td>{monto-amort}</td><td>{amort}</td><td>{end}</td></tr>
}
0 голосов
/ 23 декабря 2009

Я не уверен, что вы имеете в виду, напишите на страницу. Вы хотите динамически добавить свою таблицу на страницу после ее рендеринга? Если вы имеете в виду Ajax, вы должны взглянуть на приложение кометного чата.

Или вы хотите сказать, что вы хотите какой-то язык выражений, как страницы jsp / jsf? Если вы имеете в виду, как страницы JSP / JSF, ответ, вы не можете, по замыслу. Если вам нужно динамически генерировать html, вы делаете это в своем фрагменте, а не в xhtml.

вот ответ: В вашем файле xhtml у вас может быть что-то вроде:

<table>
    <thead>
    <tr>
        <th>First Name</th>
        <th>Middle Name</th>
        <th>Last Name</th>
        <th/>
    </tr>
    </thead>
    <tbody>
    <lift:PersonSnippets.list>
        <tr>
            <td>
                <party:firstName/>
            </td>
            <td>
                <party:middleName/>
            </td>
            <td>
                <party:lastName/>
            </td>
            <td>
                <party:edit/>
                <party:delete/>
            </td>
        </tr>
    </lift:PersonSnippets.list>
    </tbody>
</table>

Тогда ваш фрагмент выглядит так:

def list(xhtml: NodeSeq): NodeSeq = {

val people = Model.createNamedQuery[Person]("findAllPeople").getResultList()

people.flatMap(person =>
        bind("party", xhtml,
          "firstName" -> Text(person.getFirstName()),
          "middleName" -> Text(person.getMiddleName()),
          "lastName" -> Text(person.getLastName()),
          "edit" -> link("/contact/person/edit", () => personVar(person), Text(?("Edit"))),
          "delete" -> link("/contact/person/delete", () => personVar(person), Text(?("Delete")))
          ))

}

...