2013-05-01 67 views
1

一旦单元格被徘徊,是否有更高效的方式显示工具提示?使用结构属性格式化数据网格,有没有办法使用格式化程序来显示dijit工具提示,而不是使用html标题属性。使用Dojo DataGrid和JSonRestStore显示dijit工具提示

这里是工具提示显示的列。

var subscriberGridLayout = [   
     {  
      name: " ", 
      field: "ExpirationDate", 
      formatter: function(value){ 
       if(value){ 
        expDate = formatDateIE(value); 
        return toolTip(); 
       } 
       else 
        return " "; 
      }, 
      styles: "text-align: center;", 
      width: "30px" 
     }, 

这里是通过图像标签会显示一个提示图标,但不是dijit的工具提示它只是使用HTML的标题显示弹出的功能。

function toolTip(){ 
     src = "'/Subscriber/resources/images/icons/icon_error.gif'/>"; 
     if(dojo.date.difference(today, expDate) <= 0){ 
      message = "Credential expired."; 
      return "<img title='"+ message + "' src=" + src + ""; 
     } else if(dojo.date.difference(today, expDate) <= 60) { 
      message = "This Subscriber will expire in " + dojo.date.difference(today, expDate) + " days." 
         + "&#10; &#10;To prevent an interruption in the Subscriber&rsquo;s access, please sumbit a request to " + 
          "renew the Subscriber within 30 days of the expiration date."; 
      return "<img title='"+ message + "' src=" + src + ""; 
     } else { 
      return " "; 
     } 

    } 

回答

4

我会做这样的事情:

new Tooltip({ 
    connectId: grid.domNode, 
    selector: "td", 
    getContent: function(matchedNode){ 
     return matchedNode.innerText 
    } 
}); 

随着grid.domNode你可以得到你的部件所产生的DOM。网格生成表结构,因此您可以使用selectorgetContent属性获取单元格。

我必须说这不是真正的做法,因为现在你在玩Dojo小部件的内部结构。如果他们曾经决定不使用表格作为DOM结构,那么你的代码将无法工作。

但我不认为有更好的方法来实现这一点,最终你将永远不得不将dojo单元格转换为DOM节点(因为工具提示是基于DOM的)。你当然可以连接一个工具提示到每个单元格,但我之前尝试过,这是一个小错误(有时工具提示没有弹出)。

我也做了一个JSFiddle向你展示一个工作的例子。