2012-04-23 6 views
1

J'ai une fenêtre contextuelle modale comme boîte de réception d'un message d'utilisateur. Lorsque l'utilisateur clique sur le lien pour voir un message, j'utilise jquery pour afficher le message. La navigation autour de l'affichage des messages est tout côté client et agréable et lisse.Utilisation d'AJAX avec jquery dans un projet de formulaire asp sur un hébergement partagé godaddy

Le problème que j'ai essayé de résoudre est après qu'un utilisateur clique sur le lien de message pour voir le message que je veux mettre à jour la base de données pour refléter ceci. J'ai une méthode côté serveur C# qui fait cela et j'essaie d'utiliser ajax pour y arriver. Toute autre manière et la page se recharge et le message disparaît modal.

Ma tentative consistait à mettre un bouton sur le panneau de mise à jour. Cela fonctionne et ne provoque pas un retour complet et le modal reste en place. Donc, ma prochaine étape était d'appeler le bouton de jquery lorsque la fonction pour afficher le message a été exécuté. Maintenant, il fait une page pleine page et non partielle.

<asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
<ContentTemplate> 
<asp:Button runat="server" ID="UpdateReadStatusButton" Text="test" OnClick="UpdateReadStatus"/> 
</ContentTemplate> 
</asp:UpdatePanel> 

puis je l'appelle avec jquery

function ShowMyPopup(message, subject, sender, reciever, id) { 
    ShowPopup(message, subject, sender, reciever, id); 
    $('#ctl00_UpdateReadStatusButton').click(); 
} 

J'ai essayé d'utiliser une autre façon de ajax et j'ai pu appeler le code côté serveur calme facilement, et cela a fonctionné très bien, jusqu'à ce que je déployé. J'ai essayé le wrapper .net ajax de Michael Schwarz sans succès après le déploiement non plus. Le problème étant que le site est hébergé sur le plan d'hébergement partagé de godaddy et toutes les autres méthodes d'ajax que j'ai essayé ne fonctionneront pas sur leurs serveurs. J'utilise maintenant la dernière version de l'AjaxControlToolKit, et il s'agit d'une application de formulaires Web, donc les solutions faciles de MVC ne fonctionneront pas. Je suis très nouveau pour l'ajax et le développement web en général et toute aide serait grandement appréciée.

Je pensais également à définir l'attribut commandArgument de boutons avec jquery parce que c'est là que j'ai l'ID de message et je peux le sortir sur le côté serveur de publication.

Si vous souhaitez un visuel, rendez-vous sur On2Wheels.ca et connectez-vous avec HelpUser utilisateur et mot de passe HelpUser (notez les majuscules.) Et cliquez sur l'icône de courrier sur la droite.

J'ai juste essayé le chemin Jquery à ajax:

function UpdateRead() { 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/UpdateReadStatus", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (result) { 
      //do something 
     } 
    }); 
} 

avec C# méthode de:

[System.Web.Services.WebMethod] 
    protected void UpdateReadStatus(string id) 
    { 
     var a = id; 
    } 

Je pensais que je ne pouvais appeler une méthode par url si j'utilisais MVC. Aussi, c'est dans une page maître, donc il apparaît sur chaque page.

Répondre

0

Si vous utilisez jQuery, il n'est pas nécessaire d'utiliser le UpdatePanel ASP.Net. C'est compliqué, lourd et juste plus d'ennuis que ça vaut le coup. Utilisez strictement les méthodes jQuery pour votre fonctionnalité AJAX. Jetez un oeil à quelques-uns des exemples qu'ils ont sur leur site web:

http://api.jquery.com/jQuery.ajax/

+0

Je mis à jour la question de montrer ce que j'ai essayé par rapport à votre réponse. –

Questions connexes