【问题标题】:Modifying main Activities grid view in CRM 4.0 using JavaScript使用 JavaScript 在 CRM 4.0 中修改主活动网格视图
【发布时间】:2011-04-30 19:33:30
【问题描述】:

我的任务是更改网格中每一行的主活动视图页面(工作场所、我的工作 -> 活动)上的信封图标,具体取决于 crm 4.0 中行的自定义状态。我需要使用 JavaScript 来完成。有谁知道是否有办法做到这一点以及 JavaScript 代码应该放在哪里?我假设我需要拦截网格 onLoad 事件,遍历网格,检查条件并翻转图标的 url。但我不知道如何挂钩该事件......

非常感谢!

我得到了一些非常有用的建议,这是我目前得到的。
1. 我添加了站点地图来加载自定义页面,而不是默认页面 (/workplace/home_activities.aspx)
2.这是自定义页面的代码,在html中放置onreadystatechange是我让这个函数运行的唯一方法。不知道为什么。

HTML> 头> 标题> 脚本语言=“javascript”类型=“文本/javascript”> 函数运行() { var objIframe = getIframe(); 如果(objIframe.readyState == “完成”) { var docFrame = objIframe.contentWindow.document; var grid = docFrame.getElementById("crmGrid"); var allRecords = grid.InnerGrid.AllRecords; for(var i=0; 我 函数 getIframe() { 返回 document.getElementById("wraperActivitiesFrame"); } /脚本> /头> 身体 > iframe id="wraperActivitiesFrame" src="/workplace/home_activities.aspx" WIDTH="100%" HEIGHT="100%" onreadystatechange="Run()"> /HTML>

我现在遇到的问题是,当我尝试对网格进行分页时,该功能不会再次运行。我有 2 页活动;当页面第一次加载时 - 我有我的警报框,但是当我点击“第 2 页”箭头时 - 没有任何反应。为什么???我做错了什么?

【问题讨论】:

    标签: dynamics-crm dynamics-crm-4


    【解决方案1】:

    你有点可以加入那个事件。您创建了一个“包装器”HTML 页面,将其加载到 CRM 中,而不是通过站点地图加载默认活动网格。这个包装器包含一个全尺寸的 IFrame,您可以在其中加载实际的网格,并在 IFrame 的 onreadystatechange 处理程序(对于readyState == 4)中,您遍历网格的 DOM(jQuery 可能会使这更容易,但我自己并没有使用太多 jQuery)并做任何你需要做的改变(这意味着 JavaScript 进入包装器 HTML 页面)。如果您通过setInterval 调用它并在其周围放置一个try-catch,这甚至可以安全地防止网格刷新和浏览页面。

    【讨论】:

    • 感谢您的回答!你做过这样的事情还是这是一个概念性的事情?我只是查看了呈现活动网格的实际 .aspx 页面。那里发生了很多事情。为了创建“包装”页面,我假设我必须复制原始页面所做的所有内容并添加一些自定义代码?
    • 我们在各种场合都做过这样的事情(这就是我确信可以以刷新/分页安全的方式完成的方式)。你不需要复制任何东西。包装页面实际上只是一个 HTML 页面,只有一个 IFrame 和一些 JavaScript;这只是保存 JavaScript 逻辑的“不可见”层,因为您无法将 JavaScript 添加到 CRM 主窗口(更不用说 Outlook 客户端)或网格。在 IFrame 中,您加载原始 .aspx,就像 CRM 一样,当它被渲染时,进入它的 DOM 并进行更改。
    • 您不需要查看 CRM 安装文件夹中的“原始”.aspx 文件,因为在 CRM 窗口中呈现的网格可能甚至不存在。您只需使用 IE Developer Tools 之类的工具查看 CRM 中网格的 DOM 结构,即可了解如何遍历网格以及操作哪些元素。
    • 非常感谢您对我的帮助!很抱歉打扰你,但你能看看我的代码并告诉我我做的是对还是错?
    • 我没有在代码中做任何遍历。我只是想加入事件,看看我的函数是否运行。我更改了自定义区域中的站点地图,以便调用上面的页面而不是默认的 home_activities.aspx。我似乎没有取得太大的成功,我不确定我做错了什么。谢谢!!
    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多