使用jQuery异步加载t:JSF中的dataTable

时间:2012-09-20 18:50:05

标签: jsf 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');                                          
                        }
                    }); 
        }

当我执行代码警报消息时,SUCCESS正在打印,并且所有服务器端变量都在更新。(我通过sysouts了解这一点)。但是在网页上没有任何改变。警告消息“重新编码网格后”也会被打印出来。但网格没有重新加载。服务器端更改未反映在浏览器中。

3 个答案:

答案 0 :(得分:3)

首先,您应该将\\添加到您的ID

而不是var id = 'myForm:targetView';

var id = 'myForm\\:targetView';否则jquery选择器由id不能工作(你需要转义:

答案 1 :(得分:1)

您正在引用

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

只需删除“j”,例如$( '#' + ID)...

答案 2 :(得分:0)

经过长时间的斗争,我得到了错误。给jquery加载函数的url不正确,应该更改。

相关问题