GridView doit être ajouté à une balise de formulaire pour le rendu.

TextWriter tr = new SsortingngWriter(); HtmlTextWriter writer = new HtmlTextWriter(tr); HtmlForm form = new HtmlForm(); form.Controls.Add(divQueryDescription); divQueryDescription.RenderControl(writer); 

Mon GridView est à l’intérieur d’une DIV et j’ajoute cette DIV à un HtmlForm afin de pouvoir le rendre en chaîne. Mais j’obtiens l’erreur suivante: –

Gridview ‘grv’ doit être placé dans une balise de formulaire avec runat = server, bien que ma Gridview soit déjà dans un formulaire car j’ai ajouté mon DIV au formulaire.

Comment puis-je rendre cette DIV en une chaîne?

Ajoutez simplement le code suivant dans votre page

 public override void VerifyRenderingInServerForm(Control control) { return; } 

Pour en savoir plus à ce sujet, lisez la documentation MSDN .

Assurez-vous que vous avez runat = “server” dans votre élément de formulaire / contrôle

D’après ce que vous nous montrez ici, GridView n’est pas déjà dans un élément de form avec runat="server" , vous devez faire quelque chose comme ça:

 

Il convient de noter la partie

et sa balise de fin.

Mettre à jour:

Il semble que le form pose problème car il n’a pas été écrit, vous écrivez directement depuis la div : essayez d’utiliser form.RenderControl(writer); .