2014-01-31 21 views
0

我遇到了一個我無法解決的問題。事實上,我有一個帶有頂點變量的JS,我想重新渲染這個塊以獲得新值。我正在使用輸出面板,但不幸的是沒有重新發生。我的代碼是像下面Salesforce:Javascript不想重投(鉻測試)

<apex:commandButton value="button" id="theButton" action="{!setDataSet}" oncomplete="refreshMyChart()" rerender="jstorerender"/> 
    <apex:outputpanel id="jstorerender"> 
     <script type="text/javascript" > 
      $j = jQuery.noConflict(); 
      var innerVar = '{!innerString}'; 
      var covVar = '{!coverageAsCategorie}'; 
      console.log("want to refreshINIT"+innerVar+covVar); 
     </script> 
    </apex:outputpanel> 

刷新我的圖表功能是有點複雜,所以我把它放在另一個塊,據我不認爲這是因爲重新呈現應該發生以前生產問題的根源在的onComplete:

<script type="text/javascript"> 
    function refreshMyChart(){ 
      console.log("want to refreshINIT2"+innerVar+covVar); 
      var chart; 
      var colors = Highcharts.getOptions().colors; 
      var categories = ['{!coverageAsCategorie}']; 
      var name = 'Browser brands'; 
      var data = ['{!innerString}']; 

      function setChart(options) { 
       chart.series[0].remove(false); 
       chart.addSeries({ 
        type: options.type, 
        name: options.name, 
        data: options.data, 
        color: options.color || 'white' 
       }, false); 
       chart.xAxis[0].setCategories(options.categories, false); 
       chart.redraw(); 
      }; 
      chart = new Highcharts.Chart({ 
        chart: { 
         renderTo: 'container', 
         inverted:true 

        }, 
        title: { 
         text: 'Browser market share, April, 2011' 
        }, 
        subtitle: { 
         text: 'Click the columns to view versions. Click again to view brands.' 
        }, 
        xAxis: { 
         categories: categories 
        }, 
        yAxis: { 
         title: { 
          text: 'Total percent market share' 
         } 
        }, 
        plotOptions: { 
         series: { 
          cursor: 'pointer', 
          point: { 
           events: { 
            click: function() { 
             var drilldown = this.drilldown; 
             var options; 
             if (drilldown) { // drill down 
              options = { 
               'name': drilldown.name, 
               'categories': drilldown.categories, 
               'data': drilldown.data, 
               'color': drilldown.color, 
               'type': 'columnrange', 
              }; 
             } else { // restore 
              options = { 
               'name': name, 
               'categories': categories, 
               'data': data, 
               'type': 'pie' 
              }; 
             } 
             setChart(options); 
            } 
           } 
          }, 
          dataLabels: { 
           enabled: true, 
           color: colors[0], 
           style: { 
            fontWeight: 'bold' 
           }, 
           formatter: function() { 
            return this.y +'%'; 
           } 
          } 
         } 
        }, 
        tooltip: { 
         formatter: function() { 
          var point = this.point, 
           s = this.x +':<b>'+ this.y +'% market share</b><br/>'; 
          if (point.drilldown) { 
           s += 'Click to view '+ point.category +' versions'; 
          } else { 
           s += 'Click to return to browser brands'; 
          } 
          return s; 
         } 
        }, 
        series: [{ 
         type: 'pie', 
         name: name, 
         data: data, 
         color: 'white' 
        }], 
        exporting: { 
         enabled: false 
        } 
      }); 

    };</script> 

反正發生什麼事,當我點擊我的按鈕? :

  • 我刷新函數內的console.log出現(當時我猜的onComplete事件已觸發)
  • 的執行console.log我outputpanel塊未顯示內。然後我認爲有rerender.Plus console.log IS頁面加載頁面時顯示問題,因此我不認爲這裏有任何問題與代碼...

此外,有沒有JS錯誤觸發。然後,我真的不知道爲什麼退役不想操作。

任何想法發生在這裏?

THX傢伙:)從裏面再

回答

1

調用refreshMyCart呈現ouputpanel。