我不敢相信这太难了!
所以简单地说,我试图在Sharepoint上传文档,并在链接中传递一些数据。
更详细一点: 我正在尝试将Sharepoint与Salesforce集成。在Salesforce中,我有一个链接来查看使用以下内容过滤Sharepoint的对象文档: ... /共享%20Documents /表格/ AllItems.aspx FilterField1 = SalesforceID&安培; FilterValue1 = SALESFORCEID
然后我提供了另一个链接,允许用户使用以下内容上传文档: ... / _布局/ 15 / Upload.aspx?列表= LISTGUID
然后我将SalesforceID列设置为必填列,以便在用户完成上载时,它们将显示EditForm.aspx,他们可以在其中输入SalesforceID以将文档与Salesforce对象相关联。如果SalesforceID可以自动填充,这种方法效果很好,但会有点滑动。
我从以下开始 ?... / _布局/ 15 / Upload.aspx列表= LISTGUID&安培; SalesforceID = SALESFORCEID
一旦您选择了要上传的文件并点击了确定,它将转到以下内容,显示传递的字段值,但遗憾的是没有填充必填字段 ... /共享%20Documents /表格/ EditForm.aspx模式=上传&安培; CheckInComment =和ID = 9718&安培; RootFolder =%2FROOTFOLDER%2FShared%20Documents&安培; SalesforceID = SALESFORCID
所以我开始考虑编辑Upload.aspx或EditForm.aspx以适应这种情况。但这似乎不适用于Sharepoint在线。
所以我开始研究创建自定义页面。所以我非常擅长C#,并且已经编写了可以在Sharepoint中上传和设置元数据的内容,但是你无法在Sharepoint上在线运行服务器端代码。
所以我现在一直在考虑通过javascript(https://blogs.msdn.microsoft.com/uksharepoint/2013/04/20/uploading-files-using-the-rest-api-and-client-side-techniques/)这样做,我只是得到“拒绝访问。你没有权限执行此操作或访问此资源。”
如果有人在上述任何方法上取得任何成功,我很想知道你是如何设法让它发挥作用的。对于我花在试图解决这个问题上的时间以及它实际上花了多少时间来保存用户我已经准备好放弃了。
答案 0 :(得分:1)
作为参考和其他任何与我一起努力的人,我设法最终找到了解决方案。
首先,在线Sharepoint看起来你不能修改Upload.apsx,但你可以修改EditForm.aspx。上传文件后,您将被引导至此表单以使其正常工作。
因此,您希望将参数传递给Upload.aspx,在发布后,它将传递给EditForm.aspx(但是自定义的),您可以使用表单中的参数。
以下是如何操作:
<SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="SalesforceID" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@SalesforceID')}"/>
<asp:TextBox runat="server" id="ff1{$Pos}" value="{$Param1}" text="" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@SalesforceID')}"/>
现在我刚才想出这个,但是想发布这个作为参考,所以如果它不起作用我可能错过了一点,但希望你得到它的要点。
剩下的就是弄清楚如何自动填充唯一的文件名或停止覆盖文件。我惨遭失败