Ho un datagrid che viene popolato con dati CSV quando l'utente trascina/rilascia un file su di esso. È possibile visualizzare un messaggio nella griglia vuota, ad esempio "Trascinare un file qui" o "Questa griglia è attualmente vuota". La griglia attualmente viene visualizzata come una casella grigio scuro mentre aspetto finché il file non viene trascinato per impostare le colonne ecc.È possibile visualizzare un messaggio in un datagrid vuoto
risposta
Abbiamo sottoclasse il controllo DataGridView e aggiunto questo. Non avevamo bisogno della funzionalità di trascinamento/rilascio - ci serviva solo per dire all'utente quando non c'erano dati restituiti dalla loro query.
Abbiamo una proprietà emptyText dichiarato così:
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;
}
}
e sovraccaricato la funzione 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);
}
}
Penso che la cosa più semplice da fare qui sia di fare un controllo etichetta gigante per fare il "Trascina qui" e gestire l'evento drag/drop dell'etichetta. Una volta completato il trascinamento, nascondi l'etichetta e mostra la griglia.
Ho usato questa tecnica con ListViews in passato, bello, pulito e semplice! –
se si utilizza un gridview, è possibile utilizzare la proprietà EmptyDataText. Può fare tutto ciò che un datagrid può e (IMHO) penso che sia più facile lavorare nella maggior parte dei casi
Questa potrebbe essere una soluzione, ma sto usando Winforms non ASP. Dovrò indagare su questo –
Quello che faccio in questa situazione è aggiungere un controllo scheda per modulo, inserire il DGV in una scheda e un'etichetta ('Trascina qui' o qualcosa di simile) nell'altra scheda. Nascondi le schede. Quindi se il DGV è vuoto, mostra la scheda con l'etichetta. Proprio come la risposta di routeNpingme, gestirai qui l'evento drag/drop, caricherò il DGV in background e poi cambierai tab al termine del caricamento. Questo è bello, perché hai anche la possibilità di passare facilmente avanti e indietro tra le schede mentre in VS Designer.
- 1. Come visualizzare un messaggio di dati vuoto in Datatables
- 2. Mostra messaggio "Nessun record trovato" su un WGrf DataGrid quando è vuoto
- 3. Messaggio vuoto in gridPanel
- 4. Come posso visualizzare un messaggio in Maven
- 5. Come visualizzare un elemento div vuoto?
- 6. È possibile creare un array multidimensionale vuoto in javascript/jquery?
- 7. È possibile passare e testare un elenco vuoto in JPA?
- 8. È possibile filtrare i dati in un dgrid come è possibile in un datagrid? Se é cosi, come?
- 9. È possibile visualizzare un SFSafariViewController all'interno di un UITabBarController?
- 10. È possibile visualizzare solo un div all'interno di un iframe?
- 11. È possibile visualizzare l'avanzamento di un ordinamento in linux?
- 12. Come visualizzare un messaggio di errore JSON?
- 13. Nella convalida MVC di primavera, è possibile visualizzare solo un messaggio di errore per campo alla volta?
- 14. Come impostare un campo ProtoBuf che è un messaggio vuoto in Python?
- 15. È possibile utilizzare ScrollIntoView() con un oggetto PagedCollectionView in un SilverGrid DataGrid?
- 16. È possibile creare un tipo enum Java vuoto con metodi?
- 17. Icona di avviso e un messaggio vuoto in iTunes Connect
- 18. Impossibile visualizzare un messaggio di errore perché non è possibile trovare un assieme di risorse facoltativo che lo contiene
- 19. Symfony2 e RabbitMqBundle. Non è possibile pubblicare un messaggio
- 20. È possibile inviare un messaggio push Android senza gcm?
- 21. È possibile simulare un messaggio del buffer del protocollo Java?
- 22. È possibile inviare un messaggio tramite GTalk Intent?
- 23. C# È possibile visualizzare un attributo di un oggetto in un dizionario come ListControl.DisplayMember?
- 24. È possibile visualizzare il codice PHP di un sito Web?
- 25. Come posso visualizzare un messaggio di errore in MATLAB?
- 26. È possibile visualizzare un file Excel su Linux
- 27. È possibile visualizzare un codice sorgente dell'applicazione iphones?
- 28. Collegamento a un comando in un datagrid
- 29. È possibile inizializzare un OrderedDict vuoto in Python con un meccanismo di ordinamento predefinito?
- 30. È necessario che un messaggio delegato sia sempre vuoto come tipo di reso?
Questo è bello e riutilizzabile senza logica aggiuntiva, posso impostare il testo vuoto nel designer –