2010-12-15 4 views
0

J'ai la page asp.net où je lie dans le fichier js de balisage. Fichier Js fonctionnant avec un ensemble de fonctions principalement par nom de classe. Dans ces fonctions, j'obtiens des données du serveur en utilisant WCF et ne change que l'état et les données des contrôles. Aussi sur la page je fais de la publication. Tout va bien mais mes fonctions jquery ne fonctionnent pas après cela. Après la publication, je n'ajoute qu'une ligne à la grille qui n'est pas impliquée dans la logique jquery.ASP.NET perd les liaisons jquery après la publication

Mais quand je l'ai changé ma logique de

$ (document) .ready (fonction()

$jq("#ctrlID").change(function() { });) 

à

$ (document) .ready (function()

$jq("#ctrlID").live('change', function() { });) 

tout fonctionne bien.

Je suis perplexe. Ce que c'est? Je n'ajoute pas de contrôles

Répondre

2

$ (document) .ready() s'exécute lorsque DOM est prêt. Cependant, il ne se déclenchera pas sur les ajouts asynchrones ajax, donc toutes vos liaisons seront perdues. Live() garde essentiellement vos liaisons 'actives' à tout moment. Une autre solution consisterait à utiliser l'événement côté client pageLoad(), qui fait partie de l'infrastructure client ASP.NET. Cette méthode se déclencherait sur les publications normales et partielles et vous pouvez lier vos événements comme vous le feriez normalement.

function pageLoad(sender, args) 
{ 
// Your event bindings here 
} 

Vous pouvez également utiliser args.get_isPartialLoad() pour déterminer si vous êtes dans une publication ou un postback async.

Questions connexes