【问题标题】:Create links in Kentico reports在 Kentico 报告中创建链接
【发布时间】:2019-05-01 19:08:19
【问题描述】:
我想向 Kentico 报告添加可点击链接。报告编辑器允许您在布局中添加各种 HTML 标记,但不允许您添加已插入布局中的表格的 HTML INSIDE。 (或者,如果确实如此,那么从 UI 或 Kentico 文档中并不明显。)我希望在每一行中都出现一个链接,并且该链接应该包含该行中的一个值。
单击任何链接将打开另一个页面,其中显示有关特定记录的更多数据。在我的例子中,我的第一列是一个 ID 列,我希望它的值(在每一行中)表现得像一个指向另一个页面的超链接,该页面的 URL 包含点击的 ID 值作为参数。
【问题讨论】:
标签:
hyperlink
report
reporting
kentico
【解决方案1】:
我们可以在我们的 Kentico 报告中使用 jquery 来允许特定字段中的每个值在单击时导致打开链接。就我而言,我有一个 URL,我想在其中嵌入报告中的 ID 值。我想打开一个管理页面,其 URL 如下所示(其中 9999 被我的报告中的记录 ID 替换):
/CMSModules/AdminControls/Pages/UIPage.aspx?elementguid=00000000-0000-abcd-0123-000000000000&objectid=9999&displaytitle=false
所以让我们假设报告中的第一个字段是一个 ID 列,我们想让显示的 ID 表现得像一个指向其他页面的链接。
首先我们需要jquery。在“Source”模式下编辑报表的布局并为 jquery 添加一个脚本引用,例如您可以从 code.jquery.com 获得的脚本引用,或者如果您有它,只需在本地引用它:
<script src="/jquery-3.4.0.min.js"></script>
接下来,我们必须找到每个 ID 字段,然后使其表现得像一个超链接。为此,我们找到带有 ID 列标题的
,走到 ,然后在 下找到所有 。一旦我们有了每个
,我们就遍历它们:
- 像超链接一样在 ID 值下划线
- 将光标设置为像超链接一样的手
- 添加一个 onclick 事件以使用我的 ID 字段的值打开一个 URL(在新选项卡中)
所以这是脚本。就像添加 jquery script 标签一样添加它。 (但在 jquery script 标签之后添加)
<script>
$('th:contains("MyIDColumnTitle")').parents('table').first().children('tbody').children('tr').each(function() {
$(this).children('td').first()
.css('text-decoration','underline')
.css('cursor','pointer')
.click(function(){
var thisId = $(this).text();
var u = "/CMSModules/AdminControls/Pages/UIPage.aspx?elementguid=00000000-0000-abcd-0123-000000000000&objectid=" + thisId + "&displaytitle=false"
window.open(u,'_blank');
});
});
</script>
请记住,如果 MyIDColumnTitle 不是很唯一,此脚本可能会找到错误的 th 和 table。修改 jquery 选择器以满足您的需要。您可能希望在报表周围添加一个具有元素 ID 的包装元素,以便您可以使用选择器来具体化。
采用相同的概念并使用它在模式对话框中启动页面并不难。
|