[英]loading t:dataTable in JSF asynchronously using jQuery
<t:panelTab label="Detailed View" styleClass="tabFont" rendered="true" id="DetailedView">
<t:dataTable value="#{MyFinanceBB.amendDataList}" id="DetailedViewGrid" forceId="true"
var="myVo" rowIndexVar="gridExpRowNo"......>
...............
<t:inputText value="#{myVo.myval}" styleClass="BodyFont" forceId="true" id="myId2"
onchange="getTotalMyValAjax('myId2[#{gridExpRowNo}]',#{gridExpRowNo});">
/ ------------------------------------------------- --------------- /
function getMyAmountTotalGrid(myidVar,count){
var myAmt=document.getElementById(myidVar).value;
var id = 'myForm\\:targetView';
$j.ajax({
async:"false",
cache:"false",
type: "POST",
url:"/myProj/myController",
data:{myAmt:myAmt,count:count},
error:function(){
alert('Error Occurred.Please try later');
},
success:function(output){
alert('SUCCESS');
$j('#'+id).load("/pagesmyProj/Home/dingDongHome.jsf");
alert('after reloading grid');
}
});
}
當我執行代碼警報消息時,成功消息已被打印出來,並且所有服務器端變量都已更新。 但是網頁上的內容並沒有真正改變。 警報消息“重新網格放置后”也將被打印。 但是網格沒有被重新加載。 服務器端的更改未反映在瀏覽器中。
首先,您應該在ID中添加\\\\
而不是var id = 'myForm:targetView';
寫var id = 'myForm\\\\:targetView';
通過ID否則jQuery選擇不會工作(你需要躲避:
)
您正在引用
$j('#'+id)...
只需刪除“ j”,例如。 $( '#' + id)的...
經過長時間的努力,我得到了錯誤。給jquery加載函數的url不正確,應該更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.