[ad_1]
laissez deviner que datagridview a chargé 10 données. Lorsque j’ai cliqué sur SelectALL, 9 lignes ont été cochées vraies mais la première ligne n’a pas été cochée fausse.
même si
datagridview loaded only one data then i clicked SelectALL but row not selected What I have tried: private void ReportViewer_Load(object sender, EventArgs e) { grdEmailData.ColumnHeaderMouseClick += grdEmailData_ColumnHeaderMouseClick; } private void btnSearch_Click(object sender, EventArgs e) { try { using (SqlConnection connection = new SqlConnection(ConnectionString)) { connection.Open(); string query = "SELECT * FROM email_notification WHERE bank_code = @BankCode AND stmdate = @StmDate " + "UNION " + "SELECT * FROM email_notification_arc WHERE bank_code = @BankCode AND stmdate = @StmDate"; using (SqlCommand command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@BankCode", _fiid); // Assuming _serverName is the bank code command.Parameters.AddWithValue("@StmDate", dtpStmDate.Value.ToString("dd/MM/yyyy")); SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable dataTable = new DataTable(); adapter.Fill(dataTable); DataGridViewCheckBoxColumn checkBoxColumn = new DataGridViewCheckBoxColumn(); checkBoxColumn.HeaderText = "SelectALL"; checkBoxColumn.Name = "All"; grdEmailData.Columns.Insert(0, checkBoxColumn); // Bind the data to the DataGridView grdEmailData.DataSource = dataTable; } } } catch (Exception ex) { MessageBox.Show($"Error loading data: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void grdEmailData_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { // Check if the clicked cell is in the "All" column header if (e.RowIndex == -1 && e.ColumnIndex == grdEmailData.Columns["All"].Index) { ToggleSelectAll(); } } private void ToggleSelectAll() { // Toggle the select/unselect all logic in the "All" column bool selectAll = true; foreach (DataGridViewRow row in grdEmailData.Rows) { DataGridViewCheckBoxCell checkBoxCell = row.Cells["All"] as DataGridViewCheckBoxCell; if (checkBoxCell != null) { checkBoxCell.Value = selectAll; } } }
Solution 1
Nous ne pouvons pas le savoir : nous ne pouvons pas exécuter votre code avec vos données et voir ce qui se passe.
Donc, ça va dépendre de vous.
Heureusement, vous disposez d’un outil qui vous aidera à comprendre ce qui se passe : le débogueur. Si vous ne savez pas comment l’utiliser, un rapide Google pour “Débogueur Visual Studio” devrait vous donner les informations dont vous avez besoin.
Placez un point d’arrêt sur la première ligne de la méthode ToggleSelectAll et exécutez votre code via le débogueur. Ensuite, examinez votre code et vos données et déterminez ce qui doit se produire manuellement. Ensuite, passez chaque ligne en vérifiant que ce à quoi vous vous attendiez est exactement ce qui s’est produit. Lorsque ce n’est pas le cas, c’est à ce moment-là que vous avez un problème et vous pouvez revenir en arrière (ou l’exécuter à nouveau et regarder de plus près) pour découvrir pourquoi.
À première vue, la première ligne ne contient pas de DataGridViewCheckBoxCell, donc le test ne réussit pas – mais nous ne pouvons pas dire ce qu’elle contient.
Désolé, mais nous ne pouvons pas faire cela à votre place. Il est temps pour vous d’apprendre une nouvelle (et très, très utile) compétence : le débogage !
[ad_2]
コメント