それを行うために私が理解できる唯一の方法は、への呼び出しによって作成されたHTMLにカスタムJavaScriptを挿入することgvisTable()
です。提供した例のようにEventListenerを使用することはできません。その理由は、現在実装されているeventListenerは、テーブルがクリックされたときにのみ実行されるためです。その前に実行するコードが必要です。挿入するのに最適な場所のように見えるので、jsDrawChart
返されたHTMLのセクションにあります。これは、チャートオブジェクトのJS表現が組み立てられる場所です。draw
チャートを作成した後、オブジェクトに対して追加の呼び出しを行うことができます。
テーブルオブジェクトのGoogleChartsドキュメントをざっと見るとsetSelection()
、適切なパラメータ形式を使用していると仮定すると、Javascriptで利用できる優れた関数があることがわかります。
私は次のことをしました:
mytab <- (gvisTable(a,chartid="myTable"))
#you just want to add the following line of JS before the close bracket in the jsDrawChart function.
# chart.setSelection([{'row':2, 'column':null}]);
#in my case, that turned out to be the following:
mytab$html$chart["jsDrawChart"] <- "\n// jsDrawChart\nfunction drawChartmyTable() {\n var data = gvisDatamyTable();\n var options = {};\noptions[\"allowHtml\"] = true;\n\n var chart = new google.visualization.Table(\n document.getElementById('myTable')\n );\n chart.draw(data,options);\n chart.setSelection([{'row':2, 'column':null}]); \n\n}\n \n"
RegExを使用して閉じ括弧の前にJSの追加行を自動的に挿入するか、GoogleVis関数のソースを変更することで、これをもう少し堅牢にすることができます。
しかし、JSのその行を追加すると、実行plot(mytab)
して、必要な行を自動的に選択できるようになります(インデックスが0であることに注意してください)。