传递参数Upload.aspx Sharepoint Online

时间:2016-08-15 09:59:42

标签: asp.net sharepoint file-upload salesforce sharepoint-online

我不敢相信这太难了!

所以简单地说,我试图在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/)这样做,我只是得到“拒绝访问。你没有权限执行此操作或访问此资源。”

如果有人在上述任何方法上取得任何成功,我很想知道你是如何设法让它发挥作用的。对于我花在试图解决这个问题上的时间以及它实际上花了多少时间来保存用户我已经准备好放弃了。

1 个答案:

答案 0 :(得分:1)

作为参考和其他任何与我一起努力的人,我设法最终找到了解决方案。

首先,在线Sharepoint看起来你不能修改Upload.apsx,但你可以修改EditForm.aspx。上传文件后,您将被引导至此表单以使其正常工作。

因此,您希望将参数传递给Upload.aspx,在发布后,它将传递给EditForm.aspx(但是自定义的),您可以使用表单中的参数。

以下是如何操作:

  • 在Sharepoint designer
  • 中打开您的网站
  • 转到列表和库,然后单击文档库
  • 您应该获得一个包含多个部分的摘要页面,其中一个部分是表单
  • 在“表单”部分下,单击“新建”
  • 给它一个文件名(customedit)
  • 选择"编辑项目表单(用于编辑现有列表项目)"
  • 选择"设置为所选类型的默认表单"因为这样 覆盖EditForm.aspx,一旦用户点击,就会被使用 上传文件
  • 点击确定
  • 您的新表单将显示在“表单”部分
  • 点击它来编辑文件
  • 首先,我们需要以
  • 的形式定义参数
  • 点击WebPartPages:DataFormWebPart代码(我的第24行)或下方的代码,在顶部获取位置特定选项
  • 在顶部功能区中,您现在应该看到数据视图工具
  • 点击选项,然后点击过滤器,排序&组部分单击参数
  • 点击新参数并输入查询字符串变量(您在地址中传递的字段ID)和默认值
  • 它会称之为Param1,您可以选择更改,但我没有以下
  • 向下滚动直至看到(我的第122行)
  • 下面应该是一个包含文档字段的表
  • 删除那些您不想看到整理编辑表格的内容
  • 在您要自动填充的项目下,您应该看到一个SharePoint:FormField选项卡,如下所示<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')}"/>
  • 记下ff编号(上面的ff1)
  • 您想要将其替换为<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')}"/>
  • 将ff1替换为您在上一点记下的数字
  • 将SalesforceID替换为Sharepoint列的字段名称
  • 保存并测试

现在我刚才想出这个,但是想发布这个作为参考,所以如果它不起作用我可能错过了一点,但希望你得到它的要点。

剩下的就是弄清楚如何自动填充唯一的文件名或停止覆盖文件。我惨遭失败