Tengo un cuadro de texto con una clase Css llamada 'required'. Cuando un usuario hace clic en un botón, me gustaría agregar una Clase CSS adicional al cuadro de texto llamado 'error' sin eliminar la clase 'requerida'. Quiero lograr esto desde código subyacente.Agregar clase Css adicional programáticamente
Respuesta
Puede establecer la propiedad CssClass del control de cuadro de texto ASP.NET. Para agregar más de una clase CSS de un elemento, solo lo separan con un espacio:
MyTextBox.CssClass = "class1 class2";
Usted puede poner esto en el controlador de eventos OnClick:
<asp:TextBox ID="MyTextBox" runat="server" OnClick="MyTextBox_Click" />
Luego, en código subyacente:
void MyTextBox_Click(Object sender, EventArgs e) {
MyTextBox.CssClass = "class1 class2";
}
ja, ja, no sabía que pudieras hacer eso. ¿Y qué sucede si quiero eliminar la segunda clase de CSS? MyTextBox.CssClass = "class1"; ?? – Dragan
bien, pero qué pasa si no sé cuál es la otra CssClass. Terminaré con la codificación y daré el back-end a los diseñadores ... en ese caso, tendré que saber cuál es el nombre de CssClass. No prefiero trabajar así porque está codificado. ¿No puedo hacer textbox.cssclas + = "class2"; – Dragan
Sí, simplemente establece la propiedad en la clase individual. Realmente solo está estableciendo un valor de cadena de lo que aparecerá en el atributo de clase para el control. –
Aquí hay una forma de eliminar la clase css utilizando una función. Agregar una clase sería muy similar.
public void RemoveCssClass(string className)
{
string[] splitClasses = TextButton.CssClass.Split(' ');
string separator = "";
foreach (string _class in splitClasses)
{
if (_class != className)
{
TextButton.CssClass += separator + _class;
separator = " ";
}
}
if (TextButton.CssClass == className)
TextButton.CssClass = "";
}
Eso es un código bastante malo. ¿Qué tal algo como var lsc = splitClasses.ToList(); lsc.Remove (className); TextButton.CssCLass = String.Join ("", lsc); – NetMage
Decidí crear métodos de extensión para que WebControl tenga una solución genérica. Aquí está mi código:
public static class WebControlExtensions
{
public static void AddCssClass(this WebControl control, string cssClass)
{
if (string.IsNullOrEmpty(control.CssClass))
{
control.CssClass = cssClass;
}
else
{
string[] cssClasses = control.CssClass.Split(' ');
bool classExists = cssClasses.Any(@class => @class == cssClass);
if (!classExists)
{
control.CssClass += " " + cssClass;
}
}
}
public static void RemoveCssClass(this WebControl control, string cssClass)
{
if (!string.IsNullOrEmpty(control.CssClass))
{
string[] cssClasses = control.CssClass.Split(' ');
control.CssClass = string.Join(" ", cssClasses.Where(@class => @class != cssClass).ToArray());
}
}
}
Aquí es un simple método de C# para añadir o quitar un CssClass en un WebControl ...
public static void SetOrRemoveCssClass(WebControl control, string className, bool adding)
{
string[] splitClasses = control.CssClass.Split(' ');
bool hasNow = splitClasses.Contains(className);
if (adding && !hasNow)
{
control.CssClass += " " + className;
}
else if (!adding && hasNow) // remove the CssClass attribute
{
control.CssClass = control.CssClass.Replace(className, "");
}
control.CssClass = control.CssClass.Replace(" "," ").Trim();
}
- 1. agrega programáticamente clase css a ListItem
- 2. Agregar clase CSS en RowDataBound
- 3. java extender o ajustar una clase para agregar funcionalidad adicional
- 4. ASP.NET MVC agregar clase css a actionlink
- 5. Agregar clase CSS con Knockout Validador
- 6. Agregar clase CSS en el pseudo-elemento
- 7. Agregar StyleSheets programáticamente en Asp.Net
- 8. Agregar relleno en vista programáticamente
- 9. agregar anotaciones de datos programáticamente
- 10. django-admin: Agregar fila adicional con totales
- 11. Localización - Agregar idioma adicional al archivo localizable.strings
- 12. Agregar información adicional a una excepción personalizada
- 13. Cómo agregar una columna adicional a Fiddler
- 14. Agregar clase css a Html.EditorFor en MVC 2
- 15. Eliminar/agregar clase CSS en el foco/desenfoque de entrada
- 16. Agregar clase CSS a un elemento mientras arrastra w/jQuery
- 17. Agregar una clase de CSS a una columna
- 18. jQuery agregar/eliminar clase css en la radio seleccionada
- 19. Cómo agregar una clase css a un botón z3c.form
- 20. Agregar metaetiqueta programáticamente en C#
- 21. agregar actividades programáticamente en android
- 22. ¿Cómo se puede agregar programáticamente una variable de clase a una clase en Pharo?
- 23. Agregar ruta de acceso adicional a exec-maven-plugin
- 24. CSS/Javascript Mostrar/Ocultar DIV usando una clase de CSS?
- 25. ¿Puede CSS agregar texto automáticamente?
- 26. Cómo agregar un identificador de estilo CSS (no sólo la clase de estilo CSS) en Vaadin
- 27. ¿Agregar clase Css a todos los elementos <input type'text '>? Javascript/Css?
- 28. Cargar archivo CSS adicional a través del complemento de navegador?
- 29. Clase CSS equivalente para LaTeX
- 30. ¿Cómo puedo concatenar celdas y agregar texto adicional?
esto sería mucho más fácil con código del lado del cliente. ¿Hay alguna razón específica para querer hacer esto en el código subyacente? – xanderer
No es tan difícil (desde una perspectiva de desarrollo) desde el código subyacente. Pero tiene razón acerca de que es fácil en el lado del cliente y no requiere un viaje de ida y vuelta al servidor. –
@Ken él quiere hacer esto en clics. – xanderer