J'utilise ObjectDataSource et FormView.ObjectDataSource et FormView: comment ajouter un comportement d'édition de l'interface utilisateur à partir de la couche de gestion
Dans FormView, j'ai un ensemble de contrôles. Lorsque le FormView est en édition, j'ai en particulier un ComboBox et un TextBox qui sont liés comme suit: lorsque le ComboBox prend des valeurs spéciales, le TextBox doit être en lecture seule ou non.
Pour le moment, voici ce comportement: ComboBox déclenche une publication lorsque son élément sélectionné est modifié et dans la 'OnPreRender' de ma page, j'obtiens la valeur du ComboBox et met à jour la propriété Readonly du TextBox . Ce que je n'aime pas avec cette méthode est que je n'utilise pas mon modèle objet qui est consommé par ObjectDataSource. Le problème est simplement que lorsque FormView est en édition, il ne semble pas y avoir de moyen d'obtenir l'instance de l'objet en cours d'édition. Le 'DataItem' est null et je n'ai trouvé aucun moyen de construire automatiquement un nouvel objet à partir des valeurs dans les contrôles pour le passer à ma couche de gestion. Bien sûr, je pourrais faire tout le travail moi-même en obtenant explicitement toutes les valeurs dans les contrôles, mais ce n'est pas bien.
Est-ce que quelqu'un a déjà rencontré un tel scénario? Des idées sur la façon d'obtenir un design propre?
Oui, mais j'obtiendrai l'objet sans les modifications en cours faites par l'utilisateur. Et pour obtenir ces modifications, je devrai lire les données dans tous les contrôles, par exemple myBusinessObject.Property1 = controlX.Text; myBusinessObject.Property2 = controlY.SelectedValue; .... Si j'avais une façon automatique de faire ça, ce serait génial. – Thierry