我正在使用<xpScriptBlock>
來存儲加載ExtJS網格的兩個相當長的客戶端功能的內容。我可以使用客戶端javascript調用函數就好了。view.postscript()允許你調用加載爲輸出腳本的函數嗎?
我發現我需要根據下劃線文檔中的條件顯示不同的網格。爲了引用後端,我將代碼移動到了服務器端,然後嘗試使用view.postScript調用網格。這不起作用,是我的問題的基礎。
這種方法甚至有可能嗎?我不希望把所有的代碼放入事件中。這些功能非常長,並且更好地保存在腳本塊中以提高可讀性和可維護性。這些函數肯定會加載到客戶端中,因爲我可以使用Firebug控制檯手動加載它們。也許我錯過了一些簡單的東西,所以我想在改變我的方法之前先問一下。
var typePO = document1.getItemValueString("typePO");
if(typePO == "AFS"){
view.postScript("loadGridAFS();")
} else {
view.postScript("loadGridOther();")
}
此代碼位於面板的serverside onClientLoad事件中。我曾嘗試添加「返回」關鍵字,但沒有任何區別。
更新:我甚至不能獲取使用view.postscript()工作的簡單警報。此方法僅適用於SSJS中的某些類型的事件嗎?
你能定義「不起作用」嗎?瀏覽器控制檯中顯示錯誤嗎?或者什麼都沒有發生?還是它運行,但某些行爲與預期不同? –
當然Tim,網格應該在網頁上沒有顯示。 Firebug報告沒有錯誤。這就像代碼甚至不在那裏。 –
我將代碼從面板事件移動到xpage afterPageLoad事件,它的工作原理非常完美。 –