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 知道的)。但是网页中并没有真正改变。“重新加载网格后”的警报消息也被打印出来。但是网格没有重新加载。服务器端的更改不会反映在浏览器中。

4

3 回答 3

3

首先,您应该添加\\到您的 id

代替var id = 'myForm:targetView';

否则按 id编写var id = 'myForm\\:targetView';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 回答