Cela semble être quelque chose de simple, mais je n'arrive pas à le comprendre! J'essaye d'obtenir la liaison bidirectionnelle de données pour fonctionner sur une page ASP.net avec une case à cocher comme l'une des colonnes. Comment puis-je récupérer les valeurs mises à jour (à partir des cases à cocher) à partir du gridview ?????Obtenir des données à partir d'une case à cocher dans une colonne modèle de asp.net gridview
Voici mon type de données:
[Serializable]
public class UserRequirements
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string UserId { get; set; }
public string Email { get; set; }
public bool ThingRequired { get; set; }
}
Mon balisage ressemble à quelque chose comme ceci:
<form id="form1" method="post" runat="server" >
<asp:GridView ID="UserTable" runat="server" AutoGenerateColumns="false" >
<Columns>
...
<asp:TemplateField HeaderText="Required ?">
<ItemTemplate>
<asp:CheckBox id="chkBox1" runat="server" on
Text ="Required"
checked='<%# DataBinder.Eval(Container.DataItem,"ThingRequired") %>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button id="thebutton" Text="Save Changes" OnClick="UpdateRequirements" runat="server" CausesValidation=false />
</form>
Mon code ressemble derrière quelque chose comme ceci:
List<UserRequirements > _userList = new List<UserRequirements >();
protected void Page_Load(object sender, EventArgs e)
{
_userList = data_layer.GetUserRequirments();
this.UserTable.DataSource = _userList;
this.UserTable.DataBind();
}
Finalement, je vais appeler quelque chose comme ça, mais je ne sais pas où cela devrait aller ou comment récupérer les valeurs de la gridview:
void UpdateRequirements(object sender, EventArgs e)
{
_userList = ???????????? // How do I get the data?
data_layer.UpdateUserRequirements(_userList);
}
Je pense que cette façon fonctionne le mieux. N'oubliez pas de définir la propriété AutoPostBack sur "True" pour la case à cocher si vous souhaitez que la valeur soit mise à jour immédiatement après la vérification. –