J'ai un GridView auquel je lie un DataTable que j'ai créé manuellement. Le GridView et le dataTable contiennent deux colonnes, Name et isBusy. Mon GridView ressemble à ceciModifier/accéder aux données d'une colonne CheckBox dans un ASPX: GridView - C#
<Columns>
<asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">
</asp:BoundField>
<asp:CheckBoxField DataField="isBusy" HeaderText="Busy" SortExpression="isBusy" />
</Columns>
Cela fonctionne très bien, sauf que la colonne Occupé est non modifiable sauf si vous définissez une ligne spécifique en mode édition. J'ai besoin que la totalité de la colonne de cases à cocher soit vérifiable. Donc, je me suis converti la colonne à un modèle, et donc les colonnes ressemblent à ceci:
<Columns>
<asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">
</asp:BoundField>
<asp:TemplateField HeaderText="Busy" SortExpression="isBusy">
<ItemTemplate>
<asp:CheckBox ID="isBusy" runat="server" Checked='<%# Eval("isBusy") %>' oncheckedchanged="CheckBoxBusy_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
Maintenant, cela jette une erreur lors de l'exécution:
System.InvalidCastException was unhandled by user code
Message="Specified cast is not valid."
Source="App_Web_zzjsqlrr"
StackTrace:
at ASP.projects_aspx.__DataBinding__control24(Object sender, EventArgs e) in c:\Project\Users.aspx:line 189
at System.Web.UI.Control.OnDataBinding(EventArgs e)
at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
at System.Web.UI.Control.DataBind()
at System.Web.UI.Control.DataBindChildren()
InnerException:
Toute idée pourquoi cela se passe? L'étape suivante que je voudrais est de savoir comment mettre et obtenir l'état d'une case à cocher (n'ont pas pu trouver comment vérifier manuellement une case à cocher).
Vous ne pouvez pas simplement cocher la case en l'obtenant dans la colonne spécifique? – Ruben