【问题标题】:How to get web context from infopath form?如何从 infopath 表单中获取 Web 上下文?
【发布时间】:2013-02-12 00:26:04
【问题描述】:

我有 SharePoint 表单库和带有 1 个文本字段的 InfoPath 表单。我的问题是,我需要以某种方式获得 lib。表单库的 URL 并将其设置为文本框 f.g

string _s = this.aplication.activeForm.GetUrlOfLibrabry();

如何获取父库 URL? (表单在 INFOPATH 中打开,而不是在浏览器中)

【问题讨论】:

    标签: c# sharepoint infopath


    【解决方案1】:

    我不确定 InfoPath 2007,但对于 2010,查询字符串中有可用的表单库 URL。我建议您执行以下操作:

    1. 在 FormEvents_Loading 方法中获取查询字符串参数。

      if (eventArguments.InputParameters.ContainsKey("SaveLocation")) { var docLib = HttpUtility.UrlDecode(eventArguments.InputParameters["SaveLocation"]); }

    2. 将 URL 保存在 InfoPath 隐藏字段中,以便稍后阅读(在本例中为 _spListUrl)。

      //存入xml数据

      XPathNavigator navigator=nav.SelectSingleNode("my:myFields/my:_spListUrl", NamespaceManager); navigator.SetValue(sDocLib);

    希望对你有帮助

    【讨论】:

    • if (e.InputParameters.ContainsKey("SaveLocation")) 为假...奇怪的问题是 InputParameters 为空... e.InputParameters.Count return 0
    • 你检查过网址看参数有没有?打开表单的链接是由 SP 还是你建立的?您可以在这里查看示例:scottjamison.com/blog/2007/01/…
    【解决方案2】:

    塞巴斯蒂安,你试过了吗:

    this.ServerInfo
    

    这将为您提供许多可以查询的方法(即 SharePointListUrl 等...)

    【讨论】:

    • 它不工作。我无法获取 this.ServerInfo ... 我正在使用 infopath 2007。我知道如何获取模板 URL this.Template.Uri,但我仍然想要 lib 的 url。我不知道为什么我不能在 FormEvents_Loading(object sender, LoadingEventArgs e) 或其他中使用你的代码,我有参考资料......我读过它,但问题可能是 2007 infopath?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多