Есть лучший способ сделать это. Сначала создайте две функции JavaScript (назовем их f1 и f2). Эти две функции будут использоваться для реагирования на события мыши. В этом примере функция f1 получает событие, а также строку, отображаемую во всплывающей подсказке. Функция f2 скрывает всплывающую подсказку.
function f1(e, str) {
tooltip = document.getElementById("toolTip");
tooltip.innerHTML = str;
if (!e) var e = window.event;
var posx = 0;
var posy = 0;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
posy = Math.round(posy);
posx = Math.round(posx);
tooltip.style.top = posy + 'px';
tooltip.style.left = posx + 'px';
}
function f2() {
document.getElementById("toolTip").innerHTML = "";
}
Теперь для всплывающей подсказки мы создадим div на странице .aspx следующим образом. Делает его позиционирование абсолютным, чтобы мы могли разместить его в любом месте на странице. Вы можете добавить все настройки, которые вы хотите, в div, но в этом случае мы просто покажем некоторый текст:
<div style="position:absolute; background-color:White; color:Black; id="toolTip"></div>
Теперь в своем коде вы можете связать элементы диаграммы asp.net с событиями, которые будут запускать функции javascript f1 и f2. Например, мы можем показать всплывающую подсказку, когда курсор мыши находится над точкой данных, и скрыть ее, когда она покидает точку данных.
int count = graph.Series["Default"].Points.Count;
for (int i = 0; i < count; i++)
{
string toolTipText = "My Text";
graph.Series["Default"].Points[i].MapAreaAttributes = "onmouseover=\"f1(event, '" + toolTipText + "')\" onmouseout=\"f2()\"";
}
Если требуется задержка перед отображением всплывающей подсказки, вы можете добавить задержку в JavaScript.