2009-05-06 13 views
0

Ich bin dynamisch hinzufügen eine Boolesche Spalte zu einem DataSet. Die DataSet-Tabelle ist die DataSource für eine GridView, die die Spalten AutoGenerates erstellt.Dynamisch hinzugefügt CheckBox-Spalte ist in GridView deaktiviert

Problem: Die Kontrollkästchen für diese dynamisch generierte Spalte sind alle deaktiviert. Wie kann ich sie aktivieren?

ds.Tables["Transactions"].Columns.Add("Retry", typeof(System.Boolean)); 
ds.Tables["Transactions"].Columns["Retry"].ReadOnly = false; 

Mit anderen Worten, wie kann ich steuern, wie GridView die CheckBoxen für ein boolesches Feld generiert? (Und warum hat das Setzen von ReadOnly auf False keine Auswirkung?)

Vielen Dank!

Antwort

0

Ich glaube, sie werden automatisch deaktiviert, bis sie einen Wert haben.

DataRow row = ds.Tables["Transactions"].NewRow(); 
row("Retry") = true; 
ds.Tables["Transactions"].Rows.Add(row) 
+0

Macht keinen Unterschied. Jetzt sind sie überprüft, aber immer noch deaktiviert. foreach (DataRow dr in ds. Tabellen ["Transaktionen"]. Zeilen) { dr.BeginEdit(); dr ["Wiederholen"] = wahr; dr.EndEdit(); } –

+0

Sie haben Recht. Es muss einen anderen Code geben, der sich auf deine Spalte auswirkt. – Daniel

1

Sie sollten wahrscheinlich CellContentClick Ereignishandler hinzufügen und den Wert negieren, dass die Zelle bereits hat. Wie:

private void dgvRaceDetails_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
      if (e.ColumnIndex == 5) 
      { 
       dgvRaceDetails.Rows[e.RowIndex].Cells[5].Value = 
        !(Boolean)dgvRaceDetails.Rows[e.RowIndex].Cells[5].Value; 
      } 

      if (e.ColumnIndex == 6) 
      { 
       dgvRaceDetails.Rows[e.RowIndex].Cells[6].Value = 
        !(Boolean)dgvRaceDetails.Rows[e.RowIndex].Cells[6].Value; 
      } 
} 
-1

Setzen Sie den Wert von Boolean auf True. Der Standardwert ist false. Ich hoffe das hilft.

+0

Wie wird 'ReadOnly' auf' true' gesetzt, um sie nicht zu deaktivieren? –

+0

Ich habe es falsch gelesen. Wenn Sie true/false als Wert hinzufügen, werden sie aktiviert/deaktiviert und nicht aktiviert/deaktiviert. In meinem Code habe ich versucht die Checkboxen zu deaktivieren und meine Checkboxen werden das nicht tun. – preeti

+0

dataTable.Columns.Add ("ColumnName", typeof (bool)); – preeti

Verwandte Themen