Pourquoi mon ASP.NET LinkButton pas de tir de la OnClick=“AddToCart_Click” événement?
J'ai été frapper ma tête contre le mur, sur cette pour une journée complète maintenant. Je fais de Apress du "Début ASP.NET E-Commerce en C#", dans le cas où quelqu'un est au courant du projet. Dans le chapitre 10, nous travaillons avec PayPal AddToCart et GoToCart fonctionnalité.
C'est l'événement qui n'est pas de tir:
//Why is this not working?
protected void AddToCartButton_Click1(object sender, EventArgs e)
{
string productID = Request.QueryString["ProductID"];
ProductDetails pd = CatalogAccess.GetProductDetails(productId);
string options = "";
foreach (Control cnt in attrPlaceHolder.Controls)
{
if (cnt is Label)
{
Label attrLabel = (Label)cnt;
options += attrLabel.Text;
}
if (cnt is DropDownList)
{
DropDownList attrDropDown = (DropDownList)cnt;
options += attrDropDown.Items[attrDropDown.SelectedIndex] + "; ";
}
string productUrl = Link.ToProduct(pd.ProductID.ToString());
string destination = Link.ToPayPalAddItem(productUrl, pd.Name, pd.Price, options);
Response.Redirect(destination);
}
Ici est le LinkButton code:
<p>
<asp:LinkButton ID="AddToCartButton" runat="server" CausesValidation="False" OnClick="AddToCartButton_Click1">Add to Shopping Cart</asp:LinkButton>
</p>
J'ai essayé de fixer un point d'arrêt, mais l'événement n'est jamais atteint. Le LinkButton provoque également une publication, mais jamais les feux de l'événement OnClick.
Toute aide serait grandement appréciée!
Voici l'url: http://www.northarktest.net/edwards/balloonshop
Il semble que l'événement click est tir sur le serveur, mais tandis que localement le débogage.
- Essayez-la avec page vide (sans maître). Si cela fonctionne, alors vous saurez que l'exemple fourni a certaines questions qui, probablement, sur la masterpage. Aussi, est-il une nidification, les UpdatePanels? Veuillez fournir émis le balisage html.
- Je suis confus. Quand je clique sur mentionné bouton il y a publication pour sûr, je l'ai redirigé vers northarktest.net/edwards/balloonshop/Im-Younger-Than-You-p22/... qui jette http404. Donc, il semble que l'événement click est déclenché, vous avez juste autre problème avec la redirection.
- Le livre donne des instructions pour utiliser un mot-clé riche url rewriter, je commence à penser que le graveur peut être le coupable. Je ne comprends juste pas pourquoi je ne peux pas frapper un point d'arrêt pendant le débogage.
- Est-ce une application web ou un projet de site web?
- Semble être de travailler pour moi, avez-vous fixer sur votre page d'exemple? Je suis en utilisant google Chrome.
Vous devez vous connecter pour publier un commentaire.
Je suppose que
LinkButton
n'feu leOnClick
événement. Peut-être la méthodeAddToCartButton_Click1()
redirige vers l'URL erronée, veuillez revérifier cette ligne:Pourquoi? Après avoir cliqué sur Ajouter au Panier LinkButton j'ai eu cette URL:
http://www.northarktest.net/edwards/balloonshop/Im-Younger-Than-You-p22/?ProductId=22
Maintenant, si vous remarquez qu'il y a la page manquante dans l'URL, ce qui devrait avoir quelque chose comme:
abc.aspx?ProductId=22
.Dans le cas où il peut aider n'importe qui, j'ai eu un problème similaire que mon LinkButton Cliquez sur événements (attribué dans le code-behind) n'ont jamais été à la cuisson. S'avère que depuis mon LinkButtons ont été créés dynamiquement, j'ai dû les déplacer hors de mon Page_Load() de l'événement et dans un Page_Init() événement. Après que le LinkButton Cliquez sur événements commencé à travailler ... quelque chose à faire avec la page de cycle de vie et tous les trucs fun.
En regardant ton code, je ne vois aucun problème. Vous pouvez essayer ce qui suit:
Essayez de changer votre
onclick
méthode à partir de:OnClick="AddToCartButton_Click1"
àOnClick="AddToCartButton_Click"
. Il suffit de retirer le numéro 1. Faire de même pour vos code-behind de la méthode.Reconstruire votre projet.
Si cela ne fonctionne pas, faites glisser un nouveau bouton dans votre page à l'aide de Visual Studio vue de conception et double-cliquez sur le Bouton pour générer le gestionnaire d'événement. Puis ajouter votre code code existant à partir de votre ancien bouton d'événement (
AddToCartButton_Click1
) à la nouvelle.handles xx.click
mais en c#, apparemment, vous avez fait UTILISATION leonClick
appel à l'intérieur de la déclaration de contrôle.J'ai eu ce problème. Dans mon cas, le problème était que j'avais ajouté quelques
modalpopup
avec les validateurs pour les champs à l'intérieur. Si il y a une validation à faire, et cette validation échoue (même si vous ne pouvez pas voir que, comme dans mon cas), aucun bouton ne soulèverait pas le cas, sauf si vous déclarez laCausesValidation
valeur false à la propriété.Désolé sur l'autre post...
J'ai eu la réponse, avec l'aimable autorisation de l'un des auteurs de livre... merci M. Andrei Rinea...
Au sommet de l'événement Page_load dans le produit.aspx ajouter:
AddToCartButton.PostBackUrl = Request.Url.AbsoluteUri;
REMARQUE: j'ai sauté sur le panier PayPal et rencontré ce problème plus tard dans le livre lorsque vous essayez d'ajouter des produits à la BalloonShop panier..
Espère que cela aide!
Je sais que c'est une vieille question, mais, si vous ajoutez:
À la Page_Load il va corriger l'Url de questions.
J'ai eu ce problème
Il a travaillé si j'ai changé le LinkButton à un Bouton si
Le problème est que j'avais un bouton PayPal sur la même page et il a un attribut name="submit" qui interférait avec la publication en quelque sorte. J'ai supprimé l'attribut et le linkbuttons travaillé!