2017-09-05 5 views
0

Je n'arrive pas à résoudre une erreur que j'obtiens lorsque j'essaie d'ajouter une colonne de bouton à ma table. L'erreur est: Argument 1: ne peut pas convertir « System.Windows.Forms.DataGridViewButtonColumn » à « System.Web.UI.WebControls.DataControlField »Obtention et erreur Je ne parviens pas à résoudre le problème lorsque j'essaie d'ajouter une colonne de bouton

Il revient à dire que je ne peux pas utiliser la variable locale « BTN 'dans la ligne

 gridViewStudent.Columns.Add(btn); 

dans le code suivant:

 gridViewStudent.DataSource = table; 
     gridViewStudent.DataBind(); 

     DataGridViewButtonColumn btn = new DataGridViewButtonColumn(); 
     gridViewStudent.Columns.Add(btn); 
     btn.HeaderText = "Click Data"; 
     btn.Text = "Click Here"; 
     btn.Name = "btn"; 
     btn.UseColumnTextForButtonValue = true; 
+1

Comme l'erreur essaie de vous dire, vous essayez de mélanger deux espaces de noms différents. Ne fais pas ça. – SLaks

+0

Qu'est-ce qui vous fait penser que vous pouvez ajouter un contrôle 'Windows.Forms' à un formulaire ASP.NET? – mjwills

+0

J'essaie de suivre un autre code que j'ai trouvé en ligne ici en essayant d'ajouter une colonne de bouton, et ils semblent tous suivre la même structure, donc je ne suis pas exactement sûr de ce qui est différent. Dois-je poster plus de mon code? – Sohee

Répondre

1

DataGridViewButtonColumn destiné à une utilisation avec WinForms de DataGridView contrôle. Dans le contexte Web Forms vous pouvez utiliser à la place ButtonField:

var btn = new ButtonField(); 
btn.HeaderText = "Click Data"; 
btn.Text = "Click Here"; 

gridViewStudent.Columns.Add(btn); 

Comme il n'y a pas Name et UseColumnTextForButtonValue présentent des propriétés pour ButtonField contrôle, leurs missions sont tout simplement omis.

Vous pouvez également utiliser la section préparée asp:ButtonField à l'intérieur Columns en page ASPX:

<asp:GridView runat="server" ID="gridViewStudent" ... /> 
    <Columns> 
     <%-- other fields --%> 
     <asp:ButtonField HeaderText="Click Data" Text="Click Here" /> 
    </Columns> 
</asp:GridView> 

problème similaire:

Programmatically Add ButtonColumn to GridView From DataTable

+0

J'ai fait cette modification et la construction est maintenant réussie, mais les boutons et l'en-tête de colonne n'apparaissent toujours pas. Y a-t-il peut-être un endroit spécifique où ce code devrait être? Je l'ai actuellement après que les données lient la table de données. – Sohee

+1

C'est probablement plus approprié pour créer une question de suivi. Postez votre balisage et votre code gridview fixe sur cette nouvelle question et mettez un lien vers cette question pour voir votre effort. –