我希望我的工具提示停止显示呈现的HTML并改为标记。我注意到在中继器中显示数据时,以下工作正常。使用jQuery Tooltip插件1.3。
Server.HtmlEncode(Eval("ActivityDescription") as string)
然后我想我可以对标题属性
做同样的事情<td class="activityDescriptionTooltip" title="<%# Server.HtmlEncode(Eval("ActivityDescription") as string) %>">
<%# Utilities.TruncateAtWord(Server.HtmlEncode(Eval("ActivityDescription") as string),30) %>
</td>
工具提示通过插件这样调用
$j('.activityDescriptionTooltip').tooltip();
所以如果我的ActicvityDescription是"<h2>Test</h2>"
我想在工具提示中看到"<h2>Test</h2>"
。我的标题属性呈现为
title="&lt;h2&gt;Test&lt;/h2&gt;"
但是在工具提示中,它只是以H2格式呈现为“Test”。
这可能吗?
答案 0 :(得分:1)
是的,不仅可行,而且应该与“转发器”中的工作方式相同。
您使用的功能(Server.HTMLEncode)非常适用于此。
以下应该可以正常使用
<td class="activityDescriptionTooltip" title="<%# Server.HtmlEncode("<h2>Test</h2>") %>">
您的代码的问题是您对字符串进行了两次编码(因此工具提示将显示编码的字符串)。
而不是:
<td class="activityDescriptionTooltip" title="<%# Server.HtmlEncode(Server.HtmlEncode(Eval("ActivityDescription") as string)) %>">
试试这个:
<td class="activityDescriptionTooltip" title="<%# Server.HtmlEncode(Eval("ActivityDescription") as string) %>">
修改强>:
你说这不起作用。我认为确实如此。
结帐this fiddle。你可以看到html是:
<div title="<h2>Test</h2>">asdf</div>
如果将鼠标悬停在右下角(结果)框架中的div上,工具提示会显示<h2>Test</h2>
就好了。至少在IE10,FF和Chrome中。 (我没有尝试过其他浏览器,但如果他们在这个问题上的工作方式不同,我会感到震惊。)
<强> EDIT2 强>:
jQuery tooltip plugin是一个非常陈旧且过时的插件,它需要一个额外的编码级别:
<div title="&lt;i&gt;Test&lt;/i&gt;">asdf</div>
它被编码两次并且显示得很好。
另一方面,我不建议使用插件。 jQuery UI Tooltip对你来说是更好的选择。