将Outlook联系人导入SharePoint应用程序页面

时间:2009-07-22 10:14:10

标签: sharepoint outlook

背景

我写了一个功能,让用户可以更轻松地通过电子邮件发送文档like this SO question。我已根据this answer实施了解决方案。

该功能的自定义操作会在文档库的ECB菜单中添加作为附件发送选项:

ECB menu http://alexangas.com/blog/wp-content/uploads/2009/07/senddocmenu.png

当用户选择“代理发送附件”时,会将其重定向到此发送文档应用程序页面:

Application page http://alexangas.com/blog/wp-content/uploads/2009/07/senddocform.png

要求

在“收件人”和“抄送”字段右侧添加一个图标。单击此按钮时,需要打开用户的Outlook 全局地址列表

Global Address List http://alexangas.com/blog/wp-content/uploads/2009/07/senddocgal.png

用户选择收件人并点击确定后,应填写表单并进行选择。然后,点击发送即可提交表单。

我尝试过什么

SpreadsheetLauncher Control

这样做的最佳方式似乎是James Conard使用SharePoint客户端API中的SpreadsheetLauncher控件的解决方案。不幸的是,他的代码不再可供下载(死服务器),尽管我已尝试通过电子邮件发送给他。从好的方面来看,有一个合理的例子in the SDK here

使用SDK示例我可以显示GAL对话框。但是,单击“确定”后,Internet Explorer将暂停最多30秒,并且屏幕会部分重绘。当它返回时,页面上没有任何变化,并且没有使用对话框的选择更新DOM。

我也遇到了给定示例包含在HTML表单标记中的问题。作为ASP.NET页面,页面上已有表单标记。我已经尝试过使用jQuery的AJAX功能(我以前从未尝试过)来解决这个问题,似乎没有任何事情发生。我不知道如何正确传递表单参数。

想法?

有没有其他人尝试过这样的解决方案,并且他们可以共享成功?关于如何处理这个问题还有其他想法吗? (注意:购买产品不是一种选择。)

提前致谢。

更新:人员选择器控件不是一个选项,因为MOSS的Active Directory导入中不存在某些用户。因此需要显示Outlook GAL。

更新2:我完全排除了SpreadsheetLauncher控件。它根本不能在MOSS 2007中正常工作,只能由一个开箱即用的文件引用但不被它使用。另一个缺点是它对ActiveX的要求在公司内部并不是什么大问题,但我更愿意避免。我可能会选择Sam的建议。

2 个答案:

答案 0 :(得分:0)

Alex One最简单的选项我能想到的是,您没有“发送文档”页面中的电子邮件地址的“文本”框,而是拥有“人员”选择器控件,并使用它来获取所选用户的电子邮件ID。

答案 1 :(得分:0)

您是否真的需要Outlook通讯簿控件,或者仅仅是Exchange知道的GAL中的值?如果是后者,我怀疑你可以通过合理的用户界面调用ResolveNames Operation这是Exchange Web服务的一部分。如果SOAP不适合您并且OWA可供您使用,则可以尝试使用更多REST-style calls to OWA的方法。