2009-05-28 10 views
0

J'ai un HTML <TABLE> affichant une liste d'éléments dans les lignes de la table. Pour ajouter un nouvel élément à la liste des éléments, j'ai un formulaire qui soumet les données à mon contrôleur via AJAX en utilisant Ajax.BeginForm. Une fois que l'action sur le dispositif de commande est terminé, il retourne une vue partielle contenant le balisage pour une nouvelle ligne à ajouter à ma table (par ex. <TR> <TD> ....... </TD > </TR >) . Ma question est comment puis-je ajouter la nouvelle ligne ma table existante?Ajouter ligne à <TABLE> en utilisant Ajax.BeginForm()

J'ai créer un au sommet du mon en-tête avec l'id « userrightsgridheader » et a précisé mon Ajax.BeginForm comme suit:

<% using (Ajax.BeginForm(
        "CreateUserRight", 
        new { workstationId = Model.Id }, 
        new AjaxOptions 
        { 
         HttpMethod = "POST", 
         InsertionMode = InsertionMode.InsertAfter, 
         UpdateTargetId = "userrightsgridheader" 
        } 
       )) 
       { %> 

Le problème est que cela ne fonctionne pas. Quelqu'un at-il des idées sur la façon d'y parvenir?

Merci!

Répondre

1

Vous pouvez ajouter les AjaxOption suivante, cette exécute « fonction JS » lorsque la fonctionnalité Ajax exécutée avec succès:

new AjaxOptions { OnSuccess = "jsfunction" }; 

Vous pouvez ajouter le tablerow dans la fonction JS.

mise à jour vous pouvez définir fonction JsFunction comme suit:

function jsfunction(ajaxContext) { 
    //ajaxContext contains the responseText 
} 

AjaxContext est défini comme suit:

AjaxContext ajaxContext = new AjaxContext(request, updateElement, loadingElement, ajaxOptions.InsertionMode); 
+0

Comment pourrais-je avoir accès au code HTML qui est renvoyé de mon contrôleur de l'intérieur la fonction JS? –

+0

Voir mise à jour – Ropstah

+0

Merci beaucoup. J'ai utilisé la méthode get_data() sur l'objet ajaxContext pour obtenir les données, puis j'ai ajouté la ligne à la table en utilisant jQuery –

Questions connexes