Bei DataBind System.InvalidCastException() ausgelöst
Andreas Eugster
Hallo zusammenIch habe folgendes Problem:
Ich möchte eine neue TextBox, auf einem zusätzlichen Folder den ich erstelle, erstellen.
Beim ausführen der Codezeile DataBind.SetBind() löst er mir die folgende exception aus:
(Im Objekt selber)
Das Objekt des Typs SwissAddonFramework.UI.Components.ItemMemory kann nicht in Typ SwissAddonFramework.UI.Components.ItemSAP umgewandelt werden.
im Catch()
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
SwissAddonFramework.UI.Components.TextEdit edtBemer = SwissAddonFramework.UI.Components.TextEdit.CreateNew("Bemer");
SwissAddonFramework.UI.Components.UserDatasource udsBemer = SwissAddonFramework.UI.Components.UserDatasource.CreateNew("U_XXZBem");
udsBemer.DataSourceType = UserDatasource.DataType.ShortText;
udsBemer.Length = 250;
edtBemer.DataBind.SetBind(true, "U_XXZBem", m_strTable);
form.AddItem(edtBemer);
form.Update();
Wenn ich das Feld direkt nach dem erstellen hinzufüge dann kommt die Fehlermeldung, auf der Zeile Bind, dass die Datasource bereits geladen ist.
Kann mir einer den Grund dafür nennen(U_XXZBem existiert in der tabelle), warum da ein Fehler kommt???
Gruss
Andreas Eugster
Andreas Eugster
Hat noch niemand etwas herausgefunden? Es wäre sehr wichtig.Marco Schweighauser
Hallo Andreas,probier mal folgendes
SwissAddonFramework.UI.Components.TextEdit edtBemer = SwissAddonFramework.UI.Components.TextEdit.CreateNew("Bemer");
SwissAddonFramework.UI.Components.UserDatasource udsBemer = SwissAddonFramework.UI.Components.UserDatasource.CreateNew("U_XXZBem");
udsBemer.DataSourceType = UserDatasource.DataType.ShortText;
udsBemer.Length = 250;
form.AddUserDatasource(udsBemer);
edtBemer.DataBind = usdBemer;
edtBemer.DataBind.DataBound = true;
form.AddItem(edtBemer);
form.Update();
Gruss
Marco
Andreas Eugster
Bei mir kann usdBemer nicht edtBemer.DataBind zugewiesen werden, da keine konvertieren von DataBind in UserDatasource möglich ist.Hast du evt. etwas vergessen?
Gruss
Andreas
Marco Schweighauser
Stimmt, die Userdatasource muss noch einem DataBind Objekt übergeben werden. Dort kann auch der Tablename etc. gesetzt werden.
SwissAddonFramework.UI.Components.TextEdit edtBemer = SwissAddonFramework.UI.Components.TextEdit.CreateNew("Bemer");
SwissAddonFramework.UI.Components.UserDatasource udsBemer = SwissAddonFramework.UI.Components.UserDatasource.CreateNew("U_XXZBem");
udsBemer.DataSourceType = UserDatasource.DataType.ShortText;
udsBemer.Length = 250;
form.AddUserDatasource(udsBemer);
SwissAddonFramework.UI.Components.DataBind dtbBemer = SwissAddonFramework.UI.Components.DataBind.CreateNew("U_XXZBem");
dtbBemer.DataBound = true;
dtbBemer.TableName = m_strTable;
edtBemer.DataBind = dtbBemer;
form.AddItem(edtBemer);
form.Update();
Andreas Eugster
Danke es funktioniert jetzt.Ist jedoch sehr langwiirig.. Gibt es den einen bug an SetBind?
Wird dieser in absehbarer Zeit behoben?
Gruss
Andreas
Marco Schweighauser
Hallo Andreas,du must dem
edtBemer.DataBind
zuerst ein DataBind Objekt (nicht verwechseln mit der UserDataSource) zuweisen. Sonst bekommst du eine Exception.
Z.B.:
edtBemer.DataBind = SwissAddonFramework.UI.Components.DataBind.CreateNew("U_XXZBem");
edtBemer.DataBind.SetBind(true, "U_XXZBem", m_strTable);
0
Please sign in to leave a comment.
Comments
0 comments