我想显示一个单击按钮的HTML表格。
这是我到目前为止所尝试的:
我的SCALA代码:
object Snippet {
def render = {
def showTable() = {
val table = <table border="1">
<caption>My Table</caption>
<thead>
<tr>
<td>Entry</td>
<td>Value1</td>
<td>Value2</td>
</tr>
</thead>
<tbody>
<tr>
<td>PREV</td>
<td>1</td>
<td>10</td>
</tr>
<tr>
<td>CURR</td>
<td>2</td>
<td>20</td>
</tr>
<tr>
<td>NEXT</td>
<td>3</td>
<td>30</td>
</tr>
</tbody>
</table>
SetHtml("table_div",table)
}
"#getTable" #> SHtml.button("Get Table", () => null, "onclick" -> "$('#msg_div').html('<span>Getting table...</span>')") &
"name=proc" #> SHtml.hidden(showTable)
}
}
我的HTML:
<div class="lift:Snippet.render">
<form>
<input type="hidden" name="proc"/>
<button id="getTable" value="Get Table" class="btn btn-inverse">Get Table</button>
</form>
<div id="msg_div"></div>
<div id="table_div"></div>
</div>
点击按钮没有显示任何内容..你看到了什么问题? 或者有人可以告诉我另一种方法吗?
答案 0 :(得分:2)
我不确定你想要用隐藏的输入完成什么。为什么不这样做:
"#getTable" #> SHtml.ajaxButton("Get Table", showTable)
如果您要显示等待指示符,则Lift具有设置ajax加载动画的机制。在Boot.scala
:
//Show the spinny image when an Ajax call starts
LiftRules.ajaxStart =
Full(() => LiftRules.jsArtifacts.show("ajax-loader").cmd)
// Make the spinny image go away when it ends
LiftRules.ajaxEnd =
Full(() => LiftRules.jsArtifacts.hide("ajax-loader").cmd)
您可以使用任何JsCmd
来调用自己的函数。我可能会选择那个。
答案 1 :(得分:1)
完全赞同jcern。一种稍微不同的方式也可能是:
"#getTable [onclick]" #> SHtml.ajaxInvoke(showTable)
(这样你就不会覆盖原来的按钮名称)
另请注意,您甚至不需要使用<form>
标记 - 您可以将其删除。