3

J'ai créé un AdoNetDataContext javascript et créé un DataView à partir de celui-ci. J'utilisais des zones de texte sur le modèle pour les colonnes de la table. AdoNetDataContext peut suivre les modifications s'il y en avait dans les zones de texte correspondant aux colonnes de la table utilisées. Mais mes modifications à la zone de texte sont effectuées via jquery. La chose est, datacontext ne reconnaît pas qu'il y avait des changements, donc ne peut pas les commettre.Pourquoi le datacontext ne peut-il pas détecter les modifications apportées aux commandes liées à une vue de données lorsque ces modifications sont effectuées via js?

Quelle doit être la raison derrière ce comportement et comment pouvons-nous résoudre ce problème? Merci beaucoup.

Répondre

2

DataContext et donc AdoNetDataContext que son utilisation dérivé JavaScript sur leur propre pour suivre et signaler les changements réels tout en restant Data- agnostique. Ils sont conçus pour fonctionner avec les humains, pas un autre code :-) Si vous avez besoin d'envoyer des données à partir du code, vous pouvez le faire directement sur le service Web JSON - pas besoin de manipuler l'interface utilisateur autogérée. L'accord avec presque tous ces contrôles autogennés ASP.NET est qu'ils sont destinés à des choses simples quand une entreprise ne veut pas être dérangé à faire de l'interface utilisateur du tout - plug and play :-)

Pour l'interface utilisateur Web qui permet et même invite les modifications que vous aurez besoin de passer à MVC.NET (également connu sous le nom ASP.NET MVC - ppl aime jouer avec beaucoup de noms :-)

+0

comme quand je pensais qu'il y avait une solution à mon problème ... * sigh * = ( – Jronny

1

Je ne suis pas familier avec AdoNetDataContext/ASP mais il semble que les modifications effectuées à l'aide de jQuery ne déclenchent pas les événements qu'il utilise pour détecter les changements dans les valeurs de la zone de texte.

En supposant que ce soit le cas, vos options sont:

  1. Obtenez jQuery pour tirer les événements corrects
  2. Get jQuery au feu des fonctions spécifiques AdoNetDataContext pour forcer la reconnaissance des changements
  3. Get AdoNetDataContext pour écouter quels événements sont déclenchés par jQuery

.
L'option la plus "correcte" est # 1, à mon humble avis.

EDIT:
1. Get jQuery au feu les événements corect ::

Il existe une fonction jQuery qui déclenche des événements: http://api.jquery.com/trigger/

Selon la documentation, il quelque chose comme ceci devrait fonctionner (non testé):

$('foo').trigger('change'); 

(Remarque: cela suppose que AdoNetDataContext écoute l'événement 'onChange'. Sinon, vous aurez besoin de savoir ce qu'il est écouter et appeler cette fonction à la place)

+0

C'est exactement mon problème. Je n'ai pas pu voir de documentation qui fasse js feu les événements. = ( – Jronny

+0

Édité ma réponse pour inclure un peu d'information supplémentaire sur l'utilisation de jQuery pour déclencher l'événement onChange() .Vous devrez faire un test/vérification pour savoir si c'est cet événement que AdoNetDataContext écoute et réagit, – kwah

+0

jquery n'a pas de problème avec ça, c'est adonetdatacontext qui n'a pas de documentation (ou, idk, peut-être pas de capacité).Ce déclencheur ne fait rien qui puisse dire adonetdatacontext ce qui s'est passé. – Jronny

Questions connexes