Cómo usar el control MultipleLookupField
de SharePoint: Una guía paso a paso
Al trabajar con SharePoint, es posible que te encuentres con escenarios donde necesitas asociar múltiples elementos de una lista con un elemento en otra lista. Un control útil para lograr esto es el MultipleLookupField
. En esta publicación, te guiaremos a través de cómo usar el control MultipleLookupField
paso a paso, asegurándonos de que entiendas cómo mostrar y gestionar múltiples valores de búsqueda dentro de tus web parts.
El Problema: Conectar dos listas
El desafío principal es integrar el control MultipleLookupField
en una página web que se ejecuta en el contexto de SharePoint. Es posible que desees vincular dos colecciones de campos de SharePoint, como tareas y documentos. Esto requiere una configuración básica, así como entender cómo manipular el control de manera efectiva.
Comenzando con MultipleLookupField
Paso 1: Crea tu entorno de SharePoint
- Configura un sitio de equipo: Comienza creando un nuevo sitio de equipo dentro de SharePoint.
- Agrega tareas: Ve a la lista de Tareas y crea algunas tareas.
- Crea un documento: Sube un documento a la biblioteca de Documentos compartidos.
- Crea una columna de búsqueda:
- En la biblioteca de Documentos compartidos, crea una nueva columna llamada “Relacionados”.
- Establece esta columna como un campo de Búsqueda que haga referencia al campo “Título” de la lista de Tareas.
- Asegúrate de permitir múltiples valores para esta columna.
Paso 2: Creando la web part
Para comenzar a utilizar el MultipleLookupField
, necesitas crear una web part. Aquí tienes un ejemplo simplificado para guiarte a través de este proceso.
Estructura básica de tu web part
Label l;
MultipleLookupField mlf;
protected override void CreateChildControls()
{
base.CreateChildControls();
SPList list = SPContext.Current.Web.Lists["Shared Documents"];
if (list != null && list.Items.Count > 0)
{
LiteralControl lit = new LiteralControl("Asociar tareas a " + list.Items[0].Name);
this.Controls.Add(lit);
mlf = new MultipleLookupField();
mlf.ControlMode = SPControlMode.Edit;
mlf.FieldName = "Relacionados";
mlf.ItemId = list.Items[0].ID;
mlf.ListId = list.ID;
mlf.ID = "Relacionados";
this.Controls.Add(mlf);
Button b = new Button();
b.Text = "Cambiar";
b.Click += new EventHandler(bClick);
this.Controls.Add(b);
l = new Label();
this.Controls.Add(l);
}
}
void bClick(object sender, EventArgs e)
{
l.Text = "";
foreach (SPFieldLookupValue val in (SPFieldLookupValueCollection)mlf.Value)
{
l.Text += val.LookupValue.ToString() + " ";
}
SPListItem listitem = mlf.List.Items[0];
listitem["Relacionados"] = mlf.Value;
listitem.Update();
mlf.Value = listitem["Relacionados"];
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
EnsureChildControls();
}
Paso 3: Desplegando tu web part
- Compila y despliega: Compila tu código y despliega la web part en tu entorno de SharePoint.
- Agrega la web part a tu sitio: Navega a la página de inicio de tu sitio de equipo y agrega una instancia de tu nueva web part.
Entendiendo el controlador de clics
El controlador de eventos de clic bClick
es crucial para actualizar la interfaz de usuario.
- Recuperando valores: Comienza recuperando todos los valores seleccionados del
MultipleLookupField
y mostrándolos. - Actualizando el elemento de la lista: Actualiza el campo “Relacionados” en la lista de documentos con las tareas seleccionadas, asegurando la sincronización entre la interfaz de usuario y el elemento de la lista.
Notas adicionales
- El ejemplo proporcionado es bastante básico: es importante señalar que carece de un manejo de errores completo y no está destinado para uso en producción. Considera ampliarlo para una mejor usabilidad.
- Podrías notar que si comentas la línea
mlf.Value = listitem["Relacionados"];
, la interfaz de usuario puede no sincronizarse correctamente con los datos subyacentes, haciendo que esta línea sea necesaria para el funcionamiento adecuado.
Conclusión
Siguiendo los pasos descritos anteriormente, puedes integrar con éxito el control MultipleLookupField
en tu sitio de SharePoint. Esto permite una gestión eficiente de elementos relacionados de diferentes listas, mejorando tu experiencia general en SharePoint. Con un poco de práctica y refinamiento, puedes convertir estos principios básicos en soluciones poderosas adaptadas a tus necesidades específicas.
¡No dudes en ponerte en contacto con cualquier pregunta o comparte tus experiencias usando el control MultipleLookupField
en SharePoint!