簡體   English   中英

使用jQuery在JSF中異步加載t:dataTable

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM