1
我試圖建立一個簡單的搜索應用程序作爲一個學習實驗與彗星和Lift Framework。該計劃是爲一個頁面提供文本輸入和搜索結果空間。當輸入一個搜索詞時,它應該作爲ajax請求傳輸,結果應該被服務器推回並在同一頁上呈現。當服務器發現更多結果時,應將其推送到客戶端。Lift CometActor:組織生成的HTML渲染和fixedRender
使用Comet Chat Demo爲模板,我有使二者一個Ajax形式,然後從以下模板搜索結果中的CometActor:
<lift:comet type="SearchResults" name="Other">
<search:input><search:input /><input type="submit" value="Search" /></search:input>
<search:results>
<div>Results for: <search:tag /></div>
<div class="search-results">
<search:list>
<li><list:title /></li>
</search:list>
</div>
</search:results>
</lift:comet>
相應SearchResult所演員呈現此兩個部分:fixedRender
生成AJAX表格和render
負責渲染搜索結果。
class SearchResults extends CometActor {
override lazy val fixedRender: Box[NodeSeq] = {
SHtml.ajaxForm(bind("search", findKids(defaultXml, "search", "input"),
"input" -> SHtml.text("", updateSearch _)))
}
private def updateSearch(tag: String) = Log.info("UpdateSearch: " + tag)
def render = {
bind("search", findKids(defaultXml, "search", "results"),
"tag" -> "MyTag", // TODO show actual search tag
"list" -> <ul><li>Entry</li></ul>) // TODO actual search results
}
}
原則上此代碼的工作,但它呈現以下結果的搜索框不是在上面,我會想到它。
我認爲,這與執行render
和fixedRender
的oder有關。如何更改此代碼使搜索框位於頂部?
您在這裏可能會得到很好的回覆:http://groups.google.com/group/liftweb – 2009-11-20 23:50:15