コードで ASP.NET カレンダー コントロールにツールヒントを追加します。
string newToolTip = string.Format(@"<div class='tooltip'><div class='toolHead'>{0}</div><div class='toolDate'>{1}-{2}</div></div>",sEvent.Title, sEvent.FromDate, sEvent.ToDate);
e.Cell.ToolTip = newToolTip;
e.Cell.Attributes.Add("OnClick", string.Format("javascript:__doPostBack('Karl Ender','{0}')", sEvent.Title));
ここで、「e」は DayRenderEventArgs です:
Calendar.DayRender += new DayRenderEventHandler(SpecialDayRender);
ページの最初のロードでは、すべてが正常に機能し、次の (正しい) html コードが生成されます。
<td title="" class="calendarcell" align="center" onclick="javascript:__doPostBack('Karl Ender','Hallo Welt')" style="color:White;background-color:Silver;width:14%;">7<div class="tooltip"><div class="toolHead">Hallo Welt</div><div class="toolDate">11/7/2012-5/9/2013</div></div></td>
カレンダー コントロールで月を変更すると (または別の部分ポストバックを実行すると)、突然 Html コードがめまいを起こします。
<td title="<div class='tooltip'><div class='toolHead'>Hallo Welt</div><div class='toolDate'>11/7/2012-5/9/2013</div></div>" class="calendarcell" align="center" onclick="javascript:__doPostBack('Karl Ender','Hallo Welt')" style="color:White;background-color:Silver;width:14%;">7</td>
したがって、ツールチップはそのセルの「タイトル」属性としてレンダリングされます
どんな手掛かり?
(カレンダーは updatePanel 内にあります)
コードをデバッグするとき、セルの Title-Attribute がその奇妙なコンテンツで満たされることはありません