Pregunta

He creado un elemento web en c # para sharepoint. es básicamente un formulario con cuadros de texto, literales, validadores y botones.

No estoy seguro de cómo representar este formulario para que se vea bonito. El diseño, etc., se realiza completamente dentro de esta clase c #.

En el momento de comenzar, simplemente estoy anulando el método CreateChildControls () y agregando cada control de formulario usando algo como: this.Controls.Add(submitButton);

¿Alguna idea sobre la mejor manera de diseñar este formulario?

Gracias.

¿Fue útil?

Solución

Al crear partes web personalizadas, también prefiero implementarlas anulando los métodos CreateChildControls () y Render () . En el método Render () tengo control total de la salida html y puedo representar mis controles internos llamando a this.someInnerControl.RenderControl (escritor) .

Tener el control total de la salida html también facilita el estilo del html usando CSS. Como otras personas sugieren, use un archivo CSS externo y aplique los styes al atributo class en los elementos html o la propiedad CssClass en el control web ASP.NET.

Cuando implemento webparts, que no requiere una marca especial, prefiero reutilizar las clases CSS definidas por SharePoint. Esto asegurará que mi parte web sea visualmente similar a la parte web provista por SharePoint y que tenga un aspecto y una apariencia coherentes.

Cuando utilice los estilos CSS definidos de SharePoint, debe tener en cuenta su salida html. Algunas de las clases de CSS requieren una estructura html específica para representarse correctamente. Siempre puede utilizar los navegadores " Ver código " para comprobar el html del elemento de SharePoint que está intentando imitar.

Otros consejos

Recomendaría capturar la fuente de una página de sharepoint existente y usar los estilos definidos por sharepoint. Este enlace a los estilos en 2003 es antiguo, pero sigue siendo una buena guía para Empezar. La mayoría de los nombres de clase de CSS no han cambiado.

En mis elementos web, incluyo archivos css en la solución y los inyecto en la página usando algo como:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false);

Puede anular el método RenderContents (...) para procesar manualmente el HTML de la forma que desee. Esto incluye agregar cualquier css incluido, scripting incluido, etc. que desee / use.

Puede convertir sus controles secundarios a cadenas y luego darles salida también, pero probablemente NO debería llamar al método base.RenderContents (...).

Solo asegúrate de que no olvides renderizar tus controles secundarios.

Si es importante que vea mientras diseña, use el SmartPart que incorpora un control de usuario en una parte web. (En caso de que no lo sepa, los controles de usuario pueden diseñarse utilizando las herramientas de Visual Studio).

Si prefiere codificar a mano, entonces está en el camino correcto. Simplemente cree y establezca las propiedades iniciales de sus controles dentro de Método CreateChildControls () y use this.Controls.Add () como has estado.

En ambos casos, cuando sea posible, use la propiedad CssClass para poder modificar el aspecto de un archivo CSS sin tener que volver a compilarlo. Usted podría codificar los nombres de las clases de CSS, pero sería mejor usar las propiedades del elemento web o una fuente de configuración externa para almacenarlas. Haga una referencia al archivo CSS en su página maestra o inyecte en la página usando las otras técnicas mencionadas en esta respuesta.

Los artículos de MSDN Partes web en Windows SharePoint Services o < a href = "http://msdn.microsoft.com/en-us/library/ms415817.aspx" rel = "nofollow noreferrer"> Crear un elemento web básico también puede ayudar.

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