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);
}
}
Une autre chose, ne devrait pas modifier une collection dans un foreach qui devrait être corrigé. –