0
<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');                                          
                        }
                    }); 
        }

コード アラート メッセージを実行すると、SUCCESS が出力され、すべてのサーバー側変数が更新されます (これは sysouts で知りました)。しかし、Web ページでは実際には何も変更されていません。「グリッドのリロード後」という警告メッセージも出力されます。しかし、グリッドはリロードされていません。サーバー側の変更がブラウザに反映されていません。

4

3 に答える 3

3

\\まず、IDに追加する必要があります

それ以外のvar id = 'myForm:targetView';

var id = 'myForm\\:targetView';そうしないと、IDによるjqueryセレクターが機能しません(エスケープする必要があります:

于 2012-09-20T19:00:34.163 に答える
1

あなたが参照している

$j('#'+id)...

「j」を削除するだけです。$('#'+id)...

于 2012-09-20T18:57:26.377 に答える
0

長い苦労の末、エラーが発生しました.jqueryロード関数に指定されたURLが適切ではないため、変更する必要があります。

于 2012-09-21T11:54:42.703 に答える