Salut,
Alors voilà une solution :
Tout d'abord un CheckBoxList plus facile à parcourir pour trouver les cases cochées ou non. Puis, lors du clic sur le boutton de validation, tu construit ta requete à ta base de données dynamiquement et tu la relie à ton DataGridView.
Pour commencer il faut ajouter les using :
using
System.Data.SqlClient;using
System.Data.Common;using
System.Data.SqlTypes;Tu creer une CheckBoxList (qui, soit dit en passant, peux se construire en lien avec une base de donnees, dans ce cas tu peux construire une table "Champs" avec le nom du champ (ex:bidule_id) et un libelle qui s'affichera dans la CheckBoxList) et un bouton. La valeur de chaque Item de ta CheckBoxList doit absolument etre le nom de ton champ car c'est cette valeur que tu va récupérer et non son texte pour construire ta requete.
<
asp:CheckBoxListID="CheckBoxList1"runat="server"><asp:ListItemText="1"Value="val1"></asp:ListItem><asp:ListItemText="2"Value="val2"></asp:ListItem><asp:ListItemText="3"Value="val3"></asp:ListItem><asp:ListItemText="4"Value="val4"></asp:ListItem><asp:ListItemText="5"Value="val5"></asp:ListItem><asp:ListItemText="6"Value="val6"></asp:ListItem></asp:CheckBoxList><asp:ButtonID="Button1"runat="server"Text="Valider"onclick="Button1_Click"/>
Lors du clic sur ton bouton tu te connecte à ta base, tu construit ta requete avec les champs cochés et tu la relie à ton DataGridView.
protected
void Button1_Click(object sender, EventArgs e){
ConnectionStringSettings cfg = ConfigurationManager.ConnectionStrings["Ta chaine de connexion"]; SqlConnection Conn = newSqlConnection(cfg.ConnectionString); Conn.Open();
//Debut de ta requete string req = "Select "; for (int i = 0; i < CheckBoxList1.Items.Count; i++) {
if (CheckBoxList1.Items[i].Selected == true) {
//si coch, devient un parametre req += CheckBoxList1.Items[i].Value.ToString();
req +=
", "; }
}
//fin de la requetereq +=
"from Tabl1, Tabl2, ... where ...";SqlCommand Cmd = newSqlCommand(req, Conn);Cmd.CommandType = System.Data.
CommandType.Text;SqlDataAdapter DA = newSqlDataAdapter(Cmd);DataSet dt = newDataSet("SqlDataSource");DA.Fill(dt,req);
//remplissage du DataGridViewDataGridView1.DataSource = dt;
DataGridView1.DataBind();
Conn.Close();
}
Voilà, si tu as des questions n'hésite pas.
@Pluche

Si une réponse vous convient n'oubliez pas le
réponse acceptée !!!
Ca aidera beaucoup d'autres personnes