2009-02-06 10 views
2

Je me demandais s'il y avait un moyen pour obtenir comment obtenir la sortie HTML d'un DataGrid. Je veux le HTML après que les données ont été liées à la grille. Y at-il une sorte de surcharge pour la méthode de rendu que je peux utiliser pour accomplir ceci? Merci.Comment obtenir la sortie HTML d'un DataGrid?

Répondre

7
var outputBuffer = new StringBuilder(); 
using (var writer = new HtmlTextWriter(new StringWriter(outputBuffer))) 
{ 
    yourDataGrid.RenderControl(writer); 
} 
outputBuffer.ToString(); 
-1
protected internal override void Render(HtmlTextWriter writer) 
{ 
    /// use HtmlTextWriter to customize your output 
} 
+0

Comment puis-je utiliser pour obtenir le code html RAW après que les données ont été binded au réseau? –

+0

Ok, créez un objet writer et transmettez-le à cette fonction: RenderContents (writer); alors le contenu de l'écrivain a la sortie que vous voulez. –

1

Même si vous avez surchargé la méthode Render et appelez la méthode Render de base, le code HTML figure dans le flux.

Peut-être l'architecture Control Adapter peut-elle aider ce que vous essayez d'accomplir?

+0

Voir aussi ce lien: http://msdn.microsoft.com/fr-fr/magazine/cc163543.aspx –

1

Vous pouvez utiliser cette approche dans votre classe (dérivée de DataGrid):

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{ 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    base.Render(hw); 

    string html = ProcessHtml(sw.ToString()); 

    writer.Writer(html); 
} 
Questions connexes