| 

.NET C# Java Javascript Exception

2
Hallo zusammen
Als Beispiel sei folgendes EntityModel erwähnt:
Eine Objekt Person mit einem Unterobjekt Telefon mit einer 1 zu n Relation, von einer zugrundeliegenden Datenbank erstellt (Model from Database).
Auf Person wird ein ObjectSet erzeugt und in einem Infragistics UltraWinGrid angezeigt.
Die Daten werden korrekt angezeigt, die Personen mit jeweils untergeordnet den Telefonnummern.
Über die Add-Row im Grid kann eine neue Person erfasst werden, nicht aber eine neue Telefonnummer. "Unable to ass a new row. Underlying Data Source does not support adding new rows". Bearbeiten einer bestehenden Telefonnummer funktioniert.
Was muss getan werden, damit das UltraWinGrid die vorhandene Add-Funktion "Person.Telefonnummer.Add()" erkennt?

Vielen Dank und Gruss
Andreas
21.11.2012
Andreas Schädler 117 1 6
1 Antwort
0
Also, gemäss Infragistics ist dies nicht möglich, da die Listen der Childobjekte nicht IBindingList implementieren. Somit ist ein Workaround erforderlich.
Das Ereignis eine neue Row hinzuzufügen muss abgefangen werden. Dann wird das neue Objekt per Code der Liste hinzugefügt "Person.Telefonnummer.Add()", die DataSource des Grid entfernt und neu gesetzt. Nachteil, man sieht nicht auf den ersten Blick, welche Zeile neu hinzugefügt wurde, da sie eben nicht in der Add-Row Zeile ersichtlich ist. Nachfolgend der Code wie das Ereignis abzufangen ist.

private void grd_BeforeRowInsert(object sender, Infragistics.Win.UltraWinGrid.BeforeRowInsertEventArgs e)
{
if (e.Band.Index == 0) return;
if (OutAddObject == null) return;
var parent = e.ParentRow;
OutAddObject(new FlowGridBoxAddItemValues(parent.ListObject));
e.Cancel = true;
}

public event Action<FlowGridBoxAddItemValues> OutAddObject;
27.11.2012
Andreas Schädler 117 1 6

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH