Search This Blog

Thursday, November 26, 2015

Retrieving Documents from Folders and SubFolders within a SharePoint Document Library and Binding to SpGridView without a Single line of Loop


Ascx Code

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint"Namespace="Microsoft.SharePoint.WebControls"Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities"Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI"Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages"Namespace="Microsoft.SharePoint.WebPartPages"Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true"CodeBehind="VisualWebPart1UserControl.ascx.cs"Inherits="RetrieveDocuments.VisualWebPart1.VisualWebPart1UserControl" %>
<SharePoint:SPGridView ID="sgvMyDocuments" runat="server"AutoGenerateColumns="false">
<Columns>
<asp:HyperLinkField HeaderText="Document Name"DataTextField="LinkFilename" DataNavigateUrlFields="EncodedAbsUrl"DataNavigateUrlFormatString="{0}" Target="_blank" />
</Columns>
</SharePoint:SPGridView>

CS Code 
try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWeb currentWeb = SPContext.Current.Web;
                    SPDocumentLibrary lst = (SPDocumentLibrary)currentWeb.Lists["My Documents"];
                    SPQuery sQuery = new SPQuery();
                    sQuery.Query = "<OrderBy><FieldRef Name='ID' Ascending='False' /></OrderBy>";
                    sQuery.ViewFields = "<FieldRef Name='EncodedAbsUrl' /><FieldRef Name='LinkFilename' />";
                    sQuery.ViewAttributes = "Scope='Recursive'";
                    sQuery.ViewFieldsOnly = true;
                    SPListItemCollection myColl = lst.GetItems(sQuery);
                    if (myColl.Count > 0)
                    {
                        sgvMyDocuments.DataSource = myColl.GetDataTable();
                        sgvMyDocuments.DataBind();
                    }
                });
            }
            catch (Exception ex)
            {

                Response.Write(ex.ToString());
            }
        }



No comments:

Post a Comment