Charge ascx via jQuery
Est-il un moyen de charger fichier ascx par jQuery?
Mise à JOUR:
grâce à @Emmett et @Yads. Je suis à l'aide d'un gestionnaire à la suite de jQuery ajax code:
jQuery.ajax({
type: "POST", //GET
url: "Foo.ashx",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response)
{
jQuery('#controlload').append(response.d); //or response
},
error: function ()
{
jQuery('#controlload').append('error');
}
});
mais j'obtiens une erreur. Est mon code de mal?
Un Autre Mise À Jour :
Je suis à l'aide de
error: function (xhr, ajaxOptions, thrownError)
{
jQuery('#controlload').append(thrownError);
}
et c'est ce que j'obtiens :
Invalid JSON:
Test =>(ce test est l'étiquette à l'intérieur de mon ascx)
et mon fichier ascx après l'Erreur!!!
Un Autre Mise À Jour :
mon fichier ascx est quelque chose comme ceci:
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label1" runat="server">Test</asp:Label>
mais lors de l'appel ajax, j'obtiens cette erreur en asp: 🙁
Contrôle "ctl00_ddl' de type 'DropDownList" doit être placé à l'intérieur d'une balise de formulaire avec runat=server.
grâce à @Yads. mais sa solution de travailler uniquement avec les balise html.
- stackoverflow.com/questions/1212639/...
- est-il impossible? est-il possible de convertir fichier ascx à aspx? ou la meilleure façon de faire?
- la fonction d'erreur peut prendre un objet de demande, d'examiner la demande.responseText pour savoir quelle est l'erreur.
- Votre type de données dans votre demande doit être 'html' pas 'json', btw, vous devez utiliser le @ tag si vous souhaitez avertir quelqu'un
- Je suis nouveau sur jquery. pouvez-vous mettre à jour votre réponse avec jquery? thnaks.... 😛
- Tout ce que vous êtes en train de faire, pourquoi ne pas utiliser un UpdatePanel et laissez asp.net faire pour vous? Les solutions décrites vais vous donner un moyen pour envelopper la sortie d'un usercontrol et de rendre le code html, mais il n'ont pas de contexte, de sorte qu'il pourrait tout aussi bien être simplement le code HTML.
- Par la voie, voir ma question similaire: stackoverflow.com/questions/4045509/... ... le 2ème réponse a une autre approche intéressante si vous avez vraiment besoin de faire quelque chose comme cela.
Vous devez vous connecter pour publier un commentaire.
Construction d'Emmett solution
Utilisation suivantes jquery demande
*.ascx fichiers sont rendus sur le côté serveur (à l'intérieur d'un *.page aspx), et non du côté client (où le JavaScript est exécuté).
Une option pourrait être de créer un vide *.aspx, donner à l'utilisateur le contrôle sur l' *.page aspx, puis obtenir cette page à l'aide de jQuery et vider le résultat sur la page.
Modifier
En fonction de votre commentaire, j'ai une autre suggestion:
Si vous êtes l'élaboration d'un CMS style de l'application, vous devez construire votre *.ascx contrôles de manière à ce qu'ils sont compatible avec la ASP.NET AJAX Toolkit. Qui permettra aux utilisateurs d'ajouter du contenu à la page sans faire une actualisation complète.
Si vous voulez vraiment faire de belles choses pour l'utilisateur, vous devriez vérifier Les composants webpart et les ASP.NET AJAX Web les Pièces ont été vraiment conçu pour permettre aux utilisateurs de personnaliser le contenu de leurs pages.