数据网格 Dojo 中的 href 单元格

Posted

技术标签:

【中文标题】数据网格 Dojo 中的 href 单元格【英文标题】:href cell in a data grid Dojo 【发布时间】:2011-10-13 00:39:50 【问题描述】:

我找不到如何在 dojo 工具包数据网格中放置一个带 href 的单元格,我使用的 od dojo 版本是 1.6 这是我的桌子

  <table id="billsGrid" dojoType="dojox.grid.DataGrid" data-dojo-props="escapehtmlInData:false">
        <thead>
            <tr>
                <th field="name" >name</th>
                <th field="description" >Description</th>
                <th field="activity" >activity</th>
            </tr>
        </thead>
    </table>

我正在使用 Json 获取数据。

【问题讨论】:

【参考方案1】:

您可以使用格式化函数来格式化单元格。例如,您可以声明一个包含所有格式化函数的 javascript 对象。

var myFormatters = 
   formatLink : function(value, index) 
        return "<a href='#'>" + value + "</a>";
   
;

然后在网格中,

<table id="billsGrid" dojoType="dojox.grid.DataGrid" data-dojo-props="escapeHTMLInData:false" formatterScope="myFormatters"  >
    <thead>
        <tr>
            <th formatter="formatLink" field="name" >name</th>
            <th field="description" >Description</th>
            <th field="activity" >activity</th>
        </tr>
    </thead>
</table>

你不需要为格式化程序创建一个范围对象,那么这个格式化函数应该在全局范围内,然后你可以省略网格中的formatterScope属性。

【讨论】:

我还有一个问题,如何从 url 中获取参数,我的意思是如果有 page1.html?id=12345 ,我需要从 url 中获取 id,我知道在 Jquery 中是$.url.param("id");但在道场怎么样? 您需要先使用window.location.href获取url,然后提取?之后的查询部分。得到查询字符串后,如id=12345&amp;name=alex,可以使用dojo.queryToObject将其转换为JSON对象id:'12345', name:'alex'【参考方案2】:

出于安全原因,dojo 网格默认会转义 html 标签,您只需启用 html 标签即可:

<table dojoType="dojox.grid.DataGrid" escapeHTMLInData="false" ...>

或者如果你的网格是通过编程方式添加的

escapeHTMLInData: false

更多信息在这里: http://dojotoolkit.org/reference-guide/dojox/grid/DataGrid.html

【讨论】:

以上是关于数据网格 Dojo 中的 href 单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 dojo 数据网格单元更新,以便我可以将它们自动发布回服务器?

Dojo DataGrid - 从格式化程序获取数据存储项?

是否有带有上下文菜单的 dojo 增强网格示例

dojo 工具包 - 增强网格 - 我们可以有单元格边框吗?

如何将 Dojo Data 网格单元格值重定向到另一个页面?

以编程方式使 dojo 数据网格单元跨越多列