viernes, 25 de marzo de 2016

¿Cómo listar los adjuntos de un ítem de lista en c# en SharePoint?

El resultado



El código

        public static string htmlAdjuntos(string lista, int id, int total)
        {
            string html = "";
            if (total > 0)
            {
                using (SPWeb web = SPContext.Current.Web)
                {

                    // Busco el ítem            
                    string listaURL = web.ServerRelativeUrl + "/Lists/" + lista;
                    listaURL = listaURL.Replace("//", "/");
                    SPList listaAdjuntos = web.GetList(listaURL);
                    SPListItem item = listaAdjuntos.GetItemById(id);

                    // Busco adjuntos
                    SPAttachmentCollection adjuntos = item.Attachments;
                    foreach (string adjunto in adjuntos)
                    {
                        string urlAdjunto = SPUrlUtility.CombineUrl(item.Attachments.UrlPrefix, adjunto);
                        SPFile archivoAdjunto = web.GetFile(urlAdjunto);
                        string nombreAdjunto = archivoAdjunto.Name;
                        html += "&nbsp;<a style='border:none;' href='" + urlAdjunto + "'>" + iconoAdjunto(nombreAdjunto) + "</a>";
                    }

                }

            }

            return html;
        }

        public static string iconoAdjunto(string hint)
        {
            string extension = Path.GetExtension(hint).ToLower();
            if (extension != ".doc" && extension != ".docx" && extension != ".xls" && extension != ".xlsx" && extension != ".ppt" && extension != ".pptx" && extension != ".txt" && extension != ".zip" && extension != ".bmp" && extension != ".jpg" && extension != ".jpeg" && extension != ".png")
                extension = "gen";
            if (extension != null) extension = extension.Split('.')[1];
            return icono(hint, "ic" + extension + ".gif");
        }

        public static string icono(string hint, string img)
        {
                return "<img title='" + hint + "' border='none' src='/_layouts/images/" + img + "'/>";
        }

0 comentarios:

Publicar un comentario