2009-12-24 12 views
1

J'utilise le plugin tablesorter jQuery pour faire un peu de tri de mes tables. Le site sur lequel je l'utilise est programmé dans .Net 3.5 et j'utilise ASP.NET AJAX et updatepanels pour effectuer mes mises à jour de pages asynchrones.Javascript dynamique dans la page partielle Postback

Le problème que je rencontre est lors de l'utilisation du trieur de table, j'ai quelques colonnes que je veux désactiver le tri. J'ai le code javascript suivant pour le faire,

function pageLoad(sender, args) { 
     // Set table sorting in the load event so this takes care of partial page postbacks 
     $$("gvRosters").tablesorter({ 
      sortList: [[0, 0]], 
      widgets: ['zebra'], 
      8: { 
       // disable it by setting the property sorter to false 
       sorter: false 
      } 
     }); 
    } 

La colonne que je veux cacher est la 9e colonne, et tout fonctionne très bien. J'ai mis ce code dans la fonction pageLoad afin qu'il s'exécute sur des publications partielles, ce qu'il fait. Le problème est que j'ai un linkbutton qui appelle une mise à jour asynchrone sur la page qui modifie les colonnes visibles dans ma table. Donc, la 9e colonne que j'ai besoin de cacher devient la 12e colonne qui doit être cachée. Je ne sais pas la bonne approche à utiliser pour recâbler la colonne cachée afin qu'il lit comme suit:

function pageLoad(sender, args) { 
     // Set table sorting in the load event so this takes care of partial page postbacks 
     $$("gvRosters").tablesorter({ 
      sortList: [[0, 0]], 
      widgets: ['zebra'], 
      11: { 
       // disable it by setting the property sorter to false 
       sorter: false 
      } 
     }); 
    } 

plutôt sur une publication partielle. Fondamentalement, ce que je dois faire est d'exécuter à nouveau ce code sur la publication partielle (ce qui est déjà fait dans la fonction pageLoad) mais je dois également modifier dynamiquement le code javascript exécuté pour désactiver le tri sur la bonne colonne. J'apprécie toute idée que vous pouvez fournir sur ce problème.

Répondre

0

Créer 2 méthodes javascript,

  1. initiale sur la première page de chargement (qui est pour 9 CLO),

  2. prochaine fois que vous modifiez vos Col. (fait 12 CLO).

Appelez d'abord la méthode 1 directement à partir de votre code javascript. Et sur asyn postback à partir de linkbutton vous pouvez appeler la deuxième méthode javascript en utilisant

ScriptManager.RegisterStartupScript 

Espérons que cela aide.

+0

Cela a fini par fonctionner très bien. Merci d'avoir répondu! – Nate32