Pregunta

¿Cómo se crea una columna de búsqueda en una Biblioteca de documentos que utiliza el 'Nombre' del documento como valor de búsqueda?

Encontré una publicación de blog que recomienda agregar otro campo personalizado como " FileName " y luego usar un receptor de elementos para llenar el campo personalizado con el valor del campo Nombre, pero eso parece cursi. Enlace al blog en caso de que la gente esté interesada: http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc- lib-name-field.aspx

Tengo un montón de tipos de contenido de documentos personalizados que no quiero saturar con una solución que realmente debería funcionar de todos modos.

¿Fue útil?

Solución

Una forma de hacerlo (aunque no es la forma más fácil) es creando un tipo de campo personalizado que amplíe la clase SPFieldLookup. El editor de campo de SharePoint para los campos de búsqueda oculta a propósito cualquier tipo de columna que no sea compatible con los campos de búsqueda, pero puede crear un editor de campo para su tipo de campo personalizado que los muestre.

Sin embargo, he creado una columna de búsqueda que apunta a una columna de nombre en una biblioteca de documentos antes, y probablemente no funcione como cabría esperar. Si bien el valor almacenado en la columna de búsqueda es válido, no se muestra directamente en la Vista de lista o en el formulario Ver propiedades.

La solución que publicó puede ser la mejor manera de manejar esto. Los campos de búsqueda requieren algunos errores si desea manejar escenarios más complejos, pero eso se debe a que no están destinados a proporcionar la misma funcionalidad que una relación de clave externa en una base de datos.

Otros consejos

Creé un flujo de trabajo de un paso para establecer el título del nombre, activé la modificación y creé. Parece funcionar y tardó unos segundos en crear.

La codificación en cualquier forma siempre me asusta. Así que esto es lo que hice: simplemente cambié el nombre de Stupid & Quot; Title & Quot; Campo a otra cosa, diga & Quot; Palabras clave & Quot ;, ya que no puede hacer nada con ese campo: ni siquiera puede hacerlo obligatorio. Luego creé otro campo de línea única llamado & Quot; Título & Quot; y usé este campo para las búsquedas

Bueno, hay una solución simple para eso y podría funcionar en algún caso. En pocas palabras, si hace que el campo Título sea obligatorio, esto obligará al usuario a ingresar un título. De esa manera podemos usar el campo de título como un campo de búsqueda.

Ahora ¿Cómo hacer eso? Una vez que haya terminado de crear una biblioteca de documentos, vaya a la configuración de la biblioteca. Seleccione Configuración avanzada y seleccione Sí para la opción & Quot; ¿Permitir la gestión de los tipos de contenido? & Quot ;. Luego regrese a la configuración de Biblioteca y en Tipos de contenido, seleccione & Quot; Documento & Quot; Tipo de contenido. Luego seleccione la columna de título y luego seleccione & Quot; Obligatorio (debe contener información) & Quot; y di OK.

Ahora intente cargar un documento en esta biblioteca de documentos. Verá el campo Título en el formulario.

Espero que esto ayude Aclamaciones Vaqar

Debe agregar el campo como XML con ShowField como 'FileLeafRef'

var XmlFieldDefinition = "<Field DisplayName='myLookupColumn' Type='LookupMulti' StaticName='myLookupColumn' Name='myLookupColumn' Required='FALSE' List='THE LOOKUP ID HERE' WebId='THE WEB ID HERE' UnlimitedLengthInDocumentLibrary='TRUE' Mult='TRUE' Sortable='FALSE' ShowField='FileLeafRef' />"

Field fld = fieldCollection.AddFieldAsXml(XmlFieldDefinition, true, AddFieldOptions.DefaultValue);
ClientContext.Load(fld);

ClientContext.ExecuteQuery();

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top