首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sharepoint DataFormWebPart

Sharepoint DataFormWebPart
EN

Stack Overflow用户
提问于 2010-03-03 23:29:07
回答 2查看 1.5K关注 0票数 0

在我的DataFormWebPart中,我有一个引用和查询列表的'DataSourcesString‘属性。

根据DataFormWebPart显示在哪个页面上,我需要能够在“DataSourcesString”中配置查询(在下面的代码中将字符串“Dispute Resolution”参数化)。

有没有人知道是否有一种方法可以通过XSL编辑器或Paramter编辑器修改web部件来实现参数化?

与“DataSourcesString”相关的web部件代码片段如下

代码语言:javascript
复制
  <property name="DataSourcesString" type="string">&lt;%@ Register TagPrefix="sharepoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&gt;&lt;sharepoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&amp;lt;View&amp;gt;&amp;lt;Query&amp;gt;&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name=&amp;quot;ID&amp;quot;/&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;Where&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name=&amp;quot;Primary&amp;quot;/&amp;gt;&amp;lt;Value Type=&amp;quot;Text&amp;quot;&amp;gt;Dispute Resolution&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;/Where&amp;gt;&amp;lt;/Query&amp;gt;&amp;lt;/View&amp;gt;" UseInternalName="True" IncludeHidden="True" ID="datasource1"&gt;

谢谢!我意识到如果没有截图,这可能不是那么清楚。

EN

回答 2

Stack Overflow用户

发布于 2010-03-05 01:24:31

您可以使用DataForm上的QueryString参数来完成此操作。我假设您只能导出‘re部件。因此,导出and部件并将.webpart保存到桌面。打开它并修改它,如下所示:

在DataSourcesString中,完全删除where子句:

代码语言:javascript
复制
<property name="DataSourcesString" type="string">&lt;%@ Register TagPrefix="sharepoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %&gt;&lt;sharepoint:SPDataSource runat="server" DataSourceMode="List" SelectCommand="&amp;lt;View&amp;gt;&amp;lt;Query&amp;gt;&amp;lt;OrderBy&amp;gt;&amp;lt;FieldRef Name=&amp;quot;ID&amp;quot;/&amp;gt;&amp;lt;/OrderBy&amp;gt;&amp;lt;/Query&amp;gt;&amp;lt;/View&amp;gt;" UseInternalName="True" IncludeHidden="True" ID="datasource1"&gt;

<property name="ParameterBindings" type="string">节点中,添加:

代码语言:javascript
复制
&lt;ParameterBinding Name="MyVariable" Location="QueryString(MyVar)"/&gt;

在add部件本身的XSL中,找到&lt;xsl:param name="dvt_partguid" /&gt;并在其正下方添加:

代码语言:javascript
复制
&lt;xsl:param name="MyVar" /&gt;

最后,找到select="/dsQueryResponse/Rows/Row并将其修改为:

代码语言:javascript
复制
select="/dsQueryResponse/Rows/Row[@Primary='$MyVar']

保存the部件,将其上载,现在您应该能够通过将MyVar=Whatever添加到查询字符串来对其进行过滤

票数 1
EN

Stack Overflow用户

发布于 2010-03-04 01:03:15

我发现在运行时操纵参数的唯一方法是在后台使用C#代码。

以下是所需的步骤:

  1. 将DataFormWebPart代码转储到ascx控件中。(如果您愿意,也可以是一个自定义的its部件)。
  2. 在控件的代码中,通过它的ID引用您的DataFormWebPart,就像引用任何其他用户控件一样。
  3. 使用DataFormWebPart对象处理其数据源(如果需要)及其查询。您可以获得其所有参数的句柄。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2372516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档