Tengo una cuadrícula de datos que se rellena con datos CSV cuando el usuario arrastra/suelta un archivo sobre ella. ¿Es posible mostrar un mensaje en la cuadrícula en blanco, por ejemplo, "Arrastre un archivo aquí" o "Esta cuadrícula está actualmente vacía". La grilla actualmente se muestra como un cuadro gris oscuro mientras espero hasta que el archivo se arrastre para configurar las columnas, etc.¿Es posible mostrar un mensaje en una cuadrícula de datos vacía?
Respuesta
Hemos subclasificado el control DataGridView y lo hemos agregado. No necesitábamos la funcionalidad de arrastrar/soltar; solo necesitábamos decirle al usuario cuando no se obtuvieron datos de su consulta.
tenemos una propiedad emptyText declarada como esto:
private string cvstrEmptyText = "";
[Category("Custom")]
[Description("Displays a message in the DataGridView when no records are displayed in it.")]
[DefaultValue(typeof(string), "")]
public string EmptyText
{
get
{
return this.cvstrEmptyText;
}
set
{
this.cvstrEmptyText = value;
}
}
y sobrecargados la función PaintBackground:
protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
{
RectangleF ef;
base.PaintBackground(graphics, clipBounds, gridBounds);
if ((this.Enabled && (this.RowCount == 0)) && (this.EmptyText.Length > 0))
{
string emptyText = this.EmptyText;
ef = new RectangleF(4f, (float)(this.ColumnHeadersHeight + 4), (float)(this.Width - 8), (float)((this.Height - this.ColumnHeadersHeight) - 8));
graphics.DrawString(emptyText, this.Font, Brushes.LightGray, ef);
}
}
Creo que lo más fácil de hacer aquí es hacer un control de etiqueta gigante para hacer "Arrastrar aquí" y manejar el evento de arrastrar/soltar de la etiqueta. Una vez que se completa la función de arrastrar/soltar, oculta la etiqueta y muestra la cuadrícula.
¡He utilizado esta técnica con ListViews en el pasado, agradable, limpio y simple! –
si utiliza un gridview en su lugar, puede utilizar la propiedad EmptyDataText. Puede hacer todo lo que puede hacer una cuadrícula de datos y (en mi humilde opinión) creo que es más fácil trabajar en la mayoría de los casos
Esto podría ser una solución pero estoy usando Winforms no ASP. Tendré que investigar esto –
Lo que hago en esta situación es agregar un control de pestañas a la forma, poner el DGV en una pestaña y una etiqueta ('Arrastrar aquí' o algo similar) en la otra pestaña. Ocultar las pestañas Luego, si el DGV está vacío, muestre la pestaña con la etiqueta. Al igual que la respuesta de routeNpingme, usted manejaría el evento de arrastrar/soltar aquí, cargaría el DGV en el fondo y luego cambiaría las pestañas cuando termine de cargarse. Esto es agradable, porque también tiene la capacidad de alternar fácilmente entre las pestañas mientras está en VS Designer.
- 1. ¿Debería mostrar una cuadrícula si está vacía?
- 2. ¿Es posible filtrar datos en una cuadrícula como se puede en una cuadrícula de datos? ¿Si es así, cómo?
- 3. ¿Mostrar el pie de página de gridview en una cuadrícula vacía?
- 4. Ingresar datos en una cuadrícula
- 5. Impedir información sobre herramientas vacía en una cuadrícula de datos wpf
- 6. ¿Es posible vincular propiedades de tipo complejo a una cuadrícula de datos?
- 7. ¿Es posible crear una matriz multidimensional vacía en javascript/jquery?
- 8. ¿Es posible cambiar filas y columnas en una vista de cuadrícula de datos?
- 9. mostrar imagen en una cuadrícula usando extjs
- 10. ¿Es posible SÓLO seleccionar una fila en la cuadrícula de datos?
- 11. En la validación de Spring MVC, ¿es posible mostrar solo un mensaje de error por campo a la vez?
- 12. Mostrar un cuadro de mensaje de una clase en C#?
- 13. Mostrar un mensaje C# onlyonce
- 14. Encontrar celda de cuadrícula no vacía en matriz bidimensional
- 15. ¿Es posible pasar un mensaje flash de Rails a Sinatra?
- 16. Mostrar mensaje de validación
- 17. Cómo mostrar un mensaje ocupado en una pantalla wpf
- 18. ¿Es posible simular un mensaje de buffer de protocolo Java?
- 19. ¿Cómo puedo mostrar un mensaje en Maven
- 20. Enlace a un comando en una cuadrícula de datos
- 21. En XAML puro, ¿es posible obtener una línea para alinearla a una parte de una cuadrícula?
- 22. ¿Es posible mostrar solo el valor en MySQL "mostrar variables"?
- 23. ¿Es posible capturar el "ID de mensaje" de un mensaje de correo electrónico enviado con SmtpClient?
- 24. ¿Cómo mostrar un mensaje de error JSON?
- 25. Mostrar un mensaje a los usuarios precomprometidos en Tortoise SVN
- 26. Mostrar un valor booleano como una casilla de verificación dentro de una Cuadrícula Web
- 27. ¿Cómo mostrar el mensaje completo al hacer clic en el mensaje de etiqueta en asp.net?
- 28. cómo mostrar el mensaje de alerta en el controlador
- 29. ¿Cuál es la mejor manera de mostrar ASCII en una cuadrícula con paneles usando Java?
- 30. es posible enviar datos cuando se abre una conexión websocket
Esto es bueno y reutilizable sin lógica adicional, puedo establecer el texto vacío en el diseñador –