如何使用ExtJs为表格单元格增加Tooltips(QuickTips)浮动信息
ExtJs证实了其十分强大的界面定制能力,其中的提供的ToolTips功能比HTML里的如下语句定制性更强,完全可以代替如下功能
<a href="http://dfdfd" title="TIPS">Some Text</a>
?
ExtJs是通过Ext.ToolTip和Ext.QuickTips两个组件来实现浮动提示功能的,其中Ext.ToolTip的定制功能很强,具体效果可以参考,具体配置代码如下,
/**//*
?*?Ext?JS?Library?2.1
?*?Copyright(c)?2006-2008,?Ext?JS,?LLC.
?*?licensing@extjs.com
?*?
?*?http://extjs.com/license
?*/
Ext.onReady(function()
{
????new?Ext.ToolTip(
{
????????target:?'tip1',
????????html:?'A?very?simple?tooltip'
????});
????new?Ext.ToolTip(
{
????????target:?'ajax-tip',
????????width:?200,
????????autoLoad:?
{url:?'ajax-tip.html'},
????????dismissDelay:?15000?//?auto?hide?after?15?seconds
????});
????new?Ext.ToolTip(
{
????????target:?'tip2',
????????html:?'Click?the?X?to?close?me',
????????title:?'My?Tip?Title',
????????autoHide:?false,
????????closable:?true,
????????draggable:true
????});
????new?Ext.ToolTip(
{
????????target:?'track-tip',
????????title:?'Mouse?Track',
????????width:200,
????????html:?'This?tip?will?follow?the?mouse?while?it?is?over?the?element',
????????trackMouse:true
????});

????Ext.QuickTips.init();
});?
?
但是Ext.ToolTip的缺点也是很明显的,他需要在配置中写入提示内容文本,这样如果想在表格中引用,给表格中的某一列增加浮动提示这种情况就很不方便,代码也会十分混乱。(当然有高手是可以通过函数解决这个问题的,请高手指点)。ExtJs2.0增加了一个扩展组件就是Ext.QuickTips实际上正好解决这个问题,支持在超文本中定义浮动提示的内容,这样用ASP.NET的数据绑定组件引用起来十分方便,界面也比HTML中的那个缺省的样式好看,唯一的缺点是QuickTips的定制没有ToolTip那么灵活,像上面展示的支持拖拽,鼠标点击关闭,AJAX都不好实现,但总比没有强。下面我就说说,这个QuickTips怎么具体配置,
?
首先在header里增加ExtJS的引用
<link?rel="stylesheet"?type="text/css"?href="ext-2.1/resources/css/ext-all.css"?/>
<script?type="text/javascript"?src="ext-2.1/ext-base.js">?</script>
<script?type="text/javascript"?src="ext-2.1/ext-all.js">?</script>
?
然后再在header里对Ext.QuickTips配置
Ext.QuickTips.init(); 是必须的
Ext.apply(Ext.QuickTips.getQuickTip(),{...}); 是可选的,如果你想使用缺省配置,就完全可以省略掉这一段。
maxWidth 最大宽度 minWidth 最小宽度
Ext.QuickTips.init();
Ext.apply(Ext.QuickTips.getQuickTip(),?
{
????//maxWidth:?200,
????//minWidth:?100,
????//showDelay:?50,
????//trackMouse:?true,
????//hideDelay:?true,
??
????//closable:?true,
????//autoHide:?false,
??? //draggable:?true,
????dismissDelay:?0
});
</script>
?
?最后在body里增加对Ext.QuickTips的引用,qtitile可以视情况而定可以省掉而仅仅保留qtip,在qtip里增加绑定内容。
<input?type="button"?value="OK"
class="tip-target"?ext:qtitle="OK?Button"?ext:qtip="This?is?a?quick?tip?from?markup!">
</input>
?
<asp:ListView?
?>


<ItemTemplate>
<div?id="sample" 
ext:qtitle='<%#?Eval("TipsTitleField")?%>' ext:qtip='<%#?Eval("TipsField")?%>'>
<%
#?Eval("SampleField")?%>
</div>
</ItemTemplate>
</asp:ListView>