[MOSS] Creando un custom ListViewWebPart
El otro día, creando una galería multimedia en un portal de publicación, necesitaba añadir un ListViewWebPart dinámicamente al layout de publicación y asociarlo a una librería de imagenes, para permitir al usuario que la creaba un interfaz de administración para subir, borrar…
La cosa era que necesitaba un contendor de este ListViewWebPart para controlar que el usuario era el propietario de la librería y así mostrarle o no el webpart. Al intentar añadir un ListViewWebPart dinámicamente dentro de dicho contenedor, no se mostraba la vista, ahora, si en vez de utilizar este contenedor lo agregaba dinámicamente al layout sí se veía :S
Así que opté por esta solcuión:
SPList pictureList = CurrentWeb.Lists.GetList(new Guid(guid), true);
SPView webPartView = pictureList.DefaultView;
ViewToolBar toolbar = new ViewToolBar();
SPContext context =
SPContext.GetContext(Context,
webPartView.ID,
pictureList.ID,
SPContext.Current.Web);
toolbar.RenderContext = context;
Controls.Add(toolbar);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(webPartView.SchemaXml);
SPView view = new SPView(pictureList, xmlDocument);
Literal lbl = new Literal();
lbl.Text = view.RenderAsHtml();
Controls.Add(lbl);
Y el resultado:
Salu2 y buen finde :)