ASP.NET CSS Frienfly Control Adapters & EmptyDataTemplate

di Marco Leoncini, in asp.net,

qunati di voi che stanno usando questi indimspensabili Adapters si sono accorti che il GridView non renderizza l'EmptyDataTemplate?
probabilmente una svista, speriamo sia corretta preso, mentre aspettiamo la prima soluzione che mi è venuta in mente è la seguente:

identificate nel file GridViewAdapter.cs (cartella App_Code\Adapters) la segente porzione di codice:

///////////////////// BODY /////////////////////////////

WriteRows(writer, gridView, gridView.Rows, "tbody");

///////////////////////////// //////////////////////////

fatto questo andiamo ad aggiungere il seguente codice:

if (gridView.Rows.Count == 0)
{
if (gridView.EmptyDataTemplate != null || gridView.EmptyDataText.Length > 0)
{
CreateEmptyDataRow(writer, gridView, "tbody");
}
}

controlliamo che nessuna riga esista, e richiamiamo un metodo per la creazione della riga senza dati ma che visualizzi il contenuto dell'EmptyDataTemplate.

private static void CreateEmptyDataRow(HtmlTextWriter writer, GridView gridView, string tableSection)
{
writer.WriteLine();
writer.WriteBeginTag(tableSection);
writer.Write(HtmlTextWriter.TagRightChar);
writer.Indent++;

writer.WriteLine();
writer.WriteBeginTag("tr");
writer.Write(HtmlTextWriter.TagRightChar);
writer.Indent++;

TableCell cell = new TableCell();

gridView.EmptyDataTemplate.InstantiateIn(cell);
cell.RenderControl(writer);

writer.Indent--;
writer.WriteLine();
writer.WriteEndTag("tr");

writer.Indent--;
writer.WriteLine();
writer.WriteEndTag(tableSection);
}

ho finito proprio adesso di scrivere questo codice, adesso vedo come e se è possibile refattorizzare il tutto

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese