Forum: ASP.NET |
Thema:
AW: AW: AW: DataGrid Zellen |
Von:
Martin Mostögl (
07.09.2006 07:38) |
Danke für den Hinweis!
Ich habe in einem DataGrid eine Spalte mit CheckBoxen eingebaut. Wenn jemand eine Checkbox auswählt werden in der betreffenden Zeile in einer eigenen Zelle Textboxen zur Dateneingabe angezeigt. Diese Anzeige soll aber nur bei den ausgewählten Checkboxen erscheinen, bei allen anderen Zeilen wird die Zelle mit den Textboxen ausgeblendet. Die Checkboxen lösen ein OnCheckChanged-Event aus.
Hier meine Lösung:
//eine Methode ShowGrid welche das DataGrid mit Daten befüllt und die... //...Checkboxenauswahl prüft
//alle Checkboxen durchgehen und dort wo sie angehackt ist wierden die... //...Eingabefelder eingeblendet
foreach(DataGridItem item in DataGrid2.Items)
{
if(((CheckBox)item.Cells[1].Controls[1]).Checked)
{
DataGrid2.Items[item.ItemIndex].Cells[3].Visible = true;
}
else
{
DataGrid2.Items[item.ItemIndex].Cells[3].Visible = false;
}
}
//das CheckChanged-Event
//welche CheckBox hat das Event ausgelöst
CheckBox chkSelected = (CheckBox)sender;
//welche Zeile ist betroffen
DataGridItem dgrdI = (DataGridItem)chkSelected.NamingContainer; //nur wenn eine Checkbox angekreuzt wurde wir der Editiermodus gestartet
if(!chkSelected.Checked)
{
//wenn das Häckchen weggenommen wird, werden auch die Editierfelder... //...ausgeblendet
DataGrid2.Items[dgrdI.ItemIndex].Cells[3].Visible = false;
}
else
{
//wenn das Häckchen angekreuzt wird, werden auch die Editierfelder... //...eingeblendet DataGrid2.Items[dgrdI.ItemIndex].Cells[3].Visible = true;
}
Hoffe es hilft jemanden!
lg Martin
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!