Agregar campos a nuevo/editar formulario con definición de lista personalizada (biblioteca de documentos)

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/8485

Pregunta

Estoy usando la "Definición de lista" de la plantilla de Visual Studio 2010 para crear una nueva definición de lista para una biblioteca de documentos.

Nada lujoso en absoluto: solo quiero agregar un par de campos a la lista y a la vista predeterminada. Agregar los campos a <Fields> en schema.xml y el respectivo <FieldRef> a <Views> No hay problema, así que tengo la lista con mis campos personalizados.

Solo no puedo hacer que aparezcan en los formularios nuevos/editar. Pensé ShowInDisplayForm="TRUE" y ShowInNewForm="TRUE" fue el camino a seguir, pero no parece hacer nada, luego descubrí que la nueva plantilla de definición de la lista agrega su propia "Upload.aspx, FileDlg.htm, EditDlg.htm".

Intenté poner <ows:ListProperty Select="MyColumn"> en editdlg.htm. Ningún cambio. Ahora vi que VS2010 pone mucho código en el schema.xml por debajo <Form Type="NewFormDialog" Path="EditDlg.htm"> que comienza con <ListFormOpening>.

Mi pregunta: ¿Cómo trabajar con la plantilla VS para agregar mis campos personalizados a todos los diálogos relevantes (editar/new/ver)?


Editar: descubrí cómo resolver esto eliminando el <ContentTypes> referencia del Schema.xml Como se describe aquí. Todavía no entiendo si esta es la forma correcta de hacerlo, ya que ahora eliminaba el tipo de contenido de la biblioteca (mientras que todavía puedo agregar documentos bien ...). Explicación alguien?

¿Fue útil?

Solución

El "problema" es que cada lista y biblioteca está vinculada a un tipo de contenido. Desafortunadamente, Microsoft lo ocultó al deshabilitar "permitir la administración de tipo de contenido" de forma predeterminada. Cuando crea un nuevo campo como lo hizo, se agrega a la lista pero no está vinculado al tipo de contenido de la que depende la lista. Si va a la configuración de la lista y habilita la administración de tipo de contenido, puede agregar los nuevos "campos de lista" al tipo de contenido y los verá.

El mejor enfoque para agregar campos a una plantilla de lista es crear sus propios campos y agregarlos a un tipo de contenido. Luego crea la plantilla de lista basada en este tipo de contenido (fácil con VS) o agregue este tipo de contenido a la lista también.

Otros consejos

Eliminar la referencia de ContentTypes no es necesariamente de la manera correcta, pero estoy bastante seguro de que es de la manera incorrecta. Están allí por una razón.

Tienes dos opciones. Primero, puede crear un tipo de contenido y especificar los campos de esa manera. Ver http://msdn.microsoft.com/en-us/library/ff728096.aspx Para obtener información sobre cómo construir la lista personalizada a través de un tipo de contenido.

En segundo lugar, puede usar el tipo de lista personalizada y simplemente agregar sus propios campos.

  1. Después de agregar una definición de lista en blanco al Soluiton a través de Visual Studio, agregue los campos que desee en el <Fields /> sección.

  2. Reemplace el ContentTyPereF para ID 0x01 (elemento) con uno nuevo en blanco. Vea esta publicación de blog para obtener una muestra y una explicación completa. http://jopx.blogspot.com/2007/05/sharepoint-2007-how-to-create-custom.html

Licenciado bajo: CC-BY-SA con atribución
scroll top