how to change dataformwebpart list via listname querystring
-
16-10-2019 - |
Question
We are using sharepoint moss 2007 and have have multiple document libraries that all have the same fields and setup but have different contents.
We want to be able to specify with a query string the name of the document library and have the sharepoint dataformwebpart display the data from that document library.
Right now we seem to only have it display data from a hard-coded document library which is specified via the ListID as GUID. We have to set the data source via a document library name not a guid.
the most similar posts we found are at
and
http://www.neilrichards.net/blog/?p=42
and
Here's the code for the dataformwebpart copied from sharepoint designer 2007 - anyone have any ideas?
<WebPartPages:DataFormWebPart runat="server" __markuptype="vsattributemarkup" ViewFlag="10489857" ViewContentTypeId="0x" DetailLink="#" Width="" Height="" FrameState="Normal" IsIncluded="true" IsVisible="true" Dir="Default" AllowRemove="True" AllowZoneChange="false" AllowMinimize="false" Description="This is the document library that holds all the documents that are uploaded by user" MissingAssembly="Cannot import this Web Part." PartImageSmall="" PartImageLarge="" PartOrder="2" DisplayName="Part-I" ListName="" Title="Uploaded Documents (1)" FrameType="Default" NoDefaultStyle="TRUE" __WebPartId="{A3E42BB9-0972-4783-A97C-CAE2C5DD34D1}" id="g_a3e42bb9_0972_4783_a97c_cae2c5dd34d1" pagesize="100" showwithsampledata="false" __AllowXSLTEditing="true" WebPart="true"><DataSources><SharePoint:SPDataSource runat="server" IncludeHidden="true" SelectCommand="<View><Query><GroupBy Collapse="FALSE" GroupLimit="100"><FieldRef Name="PartNumber"/><FieldRef Name="DocumentCategory"/></GroupBy><OrderBy><FieldRef Name="Created"/></OrderBy><Where><Eq><FieldRef Name="PartNumber"/><Value Type="Text">I</Value></Eq></Where></Query><ViewFields><FieldRef Name="ContentTypeId"/><FieldRef Name="FileLeafRef"/><FieldRef Name="File_x0020_Type"/><FieldRef Name="HTML_x0020_File_x0020_Type"/><FieldRef Name="_SourceUrl"/><FieldRef Name="Title"/><FieldRef Name="TemplateUrl"/><FieldRef Name="ProjectName"/><FieldRef Name="PartNumber"/><FieldRef Name="Section"/><FieldRef Name="DataNumber"/><FieldRef Name="DocumentCategory"/><FieldRef Name="DoEFileNameSuffix"/><FieldRef Name="Archived"/><FieldRef Name="ID"/><FieldRef Name="ContentType"/><FieldRef Name="Created"/><FieldRef Name="Author"/><FieldRef Name="Modified"/><FieldRef Name="Editor"/><FieldRef Name="_HasCopyDestinations"/><FieldRef Name="_CopySource"/><FieldRef Name="_ModerationStatus"/><FieldRef Name="FileRef"/><FieldRef Name="FileDirRef"/><FieldRef Name="Created_x0020_Date"/><FieldRef Name="File_x0020_Size"/><FieldRef Name="FSObjType"/><FieldRef Name="CheckedOutUserId"/><FieldRef Name="IsCheckedoutToLocal"/><FieldRef Name="CheckoutUser"/><FieldRef Name="CheckedOutTitle"/><FieldRef Name="_CheckinComment"/><FieldRef Name="_UIVersion"/><FieldRef Name="_UIVersionString"/><FieldRef Name="ParentVersionString"/><FieldRef Name="ParentLeafName"/><FieldRef Name="PermMask"/></ViewFields></View>" id="datasource1" DataSourceMode="List" UseInternalName="true" Scope="Recursive"><SelectParameters><asp:Parameter Name="ListID" DefaultValue="{8e4a5e33-9651-4065-bee6-bb2b4f7ee384}"/><asp:Parameter Name="StartRowIndex" DefaultValue="0"/><asp:Parameter Name="nextpagedata" DefaultValue="0"/><asp:Parameter Name="MaximumRows" DefaultValue="100"/><asp:Parameter Name="ListName" DefaultValue="02fab8b7d15674a1b11e026761434512" /><asp:Parameter Name="WebID" DefaultValue="RootWeb" /></SelectParameters> </SharePoint:SPDataSource></DataSources><ParameterBindings> <ParameterBinding Name="PageUrl" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="PagePath" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="HttpHost" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="HttpPath" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="List" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="URL_Display" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="HttpVDir" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="View" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="FilterLink" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="Language" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_adhocmode" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_fieldsort" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_sortfield" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_groupfield" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_sortdir" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_filterfield" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_firstrow" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_p2plinkfields" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_nextpagedata" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_sorttype" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="dvt_apos" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="filterParam" Location="Postback;Connection"/> <ParameterBinding Name="ImagesPath" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="ListUrlDir" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="EMail" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="Userid" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="URL_DISPLAY" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="URL_EDIT" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="URL_Edit" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="URL_Lookup" Location="Postback;Connection;CAMLVariable"/> <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/> <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/> <ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue=""/> <ParameterBinding Name="dvt_filterfields" Location="Postback;Connection"/> <ParameterBinding Name="dvt_partguid" Location="Postback;Connection"/> <ParameterBinding Name="ListName" Location="QueryString(DocLib)"/> <ParameterBinding Name="StartRowIndex" Location="None" DefaultValue="0"/> <ParameterBinding Name="nextpagedata" Location="None" DefaultValue="0"/> <ParameterBinding Name="MaximumRows" Location="None" DefaultValue="100"/> </ParameterBindings>
No correct solution
OTHER TIPS
You can do this with DataSourceMode="CrossList", both to display the documents as well as to determine the available Document Libraries. Use a parameter to grab the Query Strng value and then filter your DVWP with that value.
EDIT 2011-07-08:
If you only have the list name and not the GUID, then you can filter on the list properties. See http://sympmarc.com/2009/02/26/10065/