0
ヒートマップにデータを供給するmethodwのコードを呼び出して動的ヒートマップを作成しようとしています。私は関数を呼び出すタイマを持っていますGetNewHeatMapDataTable()。この関数は新しいデータをフェッチし、既存の配列(pointArray)にプッシュしてマップをダイナミックに更新します。タイマーは期待どおりに実行されます。ただし、変数newheatmapdataの値は変更されず、関数はコードGetIAHeatMapDataTable( "XXXXXXX")のコードビハインドを1回だけ呼び出します。私は何が間違っているのか分かりません。私は誰かが正しい方向に私を向けることを望んでいる。以下はJavascriptタイマーはコードビハインドメソッドを1回だけ呼び出します
私のコードのスニペットは、事前に
var heatmapData = [];
function GetDataTableFromCodeBehind() {
heatmapData = <%=GetIAHeatMapDataTable("XXXXXXX")%>;
}
var pointArray = new google.maps.MVCArray(heatmapData);
var heatmapLayer = new google.maps.visualization.HeatmapLayer({
data: pointArray,
dissipating: false,
radius: 0.00001
});
function GetNewHeatMapDataTable() {
var newheatmapdata = []
newheatmapdata = <%=GetIANewHeatMapDataTable("XXXXXXX")%>;
if (newheatmapdata.length > 0){
for (i = 0; i < newheatmapdata.length; i++) {
pointArray.push.apply(pointArray, newheatmapdata);
}
}
}
setInterval(function() {GetNewHeatMapDataTable();},3000);
おかげです。
クライアントからのようなサーバーメソッドを呼び出すことはできません。サーバーへのAJAX呼び出しを行う必要があります。 javascriptはサーバー側のメソッドを認識していません。現在のコードで行うことは、ページを生成する際にメソッドを一度呼び出すことです。 – Stephen
GetIANewHeatMapDataTable( "XXXXXXX") – brk
こんにちはuser2181397、 私は異なる値が表示されていません。メソッドを呼び出して、データ配列を1回だけ正常に取得できます。しかし、タイマーが時間を過ぎると、メソッドGetIANewHeatMapDataTable( "XXXXXXX")はもう呼び出されず、変数newheatmapdataの初期値は変更されません。 – darwin25