2010-03-09 4 views
2

Quel est le format de liaison de données avec un "objet" complexe? J'ai une classe linq à sql qui a un confinement, c'est-à-dire object.containedobject.Liaison de données à une syntaxe déclarative de sous-objet?

Je veux référencer les champs des sous-objets déclaratifs.

J'ai donc essayé MySubField.MyBasicProperty et cela n'a pas fonctionné, ainsi que MySubField_MyBasicProperty.

Merci pour toute aide!

Répondre

0

J'ai trouvé la solution et le partage pour tous ceux qui vient après moi à l'avenir.

Vous devez remplacer la méthode de mise à jour objectdatasource pour remplacer les noms de paramètres. Ceci n'est possible que si la propriété objectypename de objectdatasource n'est pas définie, sinon ils seront en lecture seule.

est mon exemple ici:

protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e) 
    { 
     foreach (string currentKey in e.InputParameters.Keys) 
     { 
      if (currentKey.Contains(".")) 
      { 
       string newKey = currentKey.Replace(".", "_"); 
       object myValue = null; 

       if (e.InputParameters[currentKey] != null) 
        myValue = e.InputParameters[newKey]; 
       if (e.InputParameters.Contains(newKey)) 
        e.InputParameters.Remove(newKey); 

       e.InputParameters.Add(newKey, myValue); 
       e.InputParameters.Remove(currentKey); 

      } 
     } 
+0

Une autre chose, ne devrait pas modifier une collection dans un foreach qui devrait être corrigé. –

Questions connexes