On Click Event

20 views
Skip to first unread message

abdev

unread,
Jul 6, 2010, 3:38:35 PM7/6/10
to Open Shopping Cart
Thanks for the component, it's very nice.
I'm using an image button :

<cart:AddToCartImageButton runat="server" id="btnOrder" Src="~/images/
cartfr.png" Availability="50"
Code="P4" DefaultQuantity="1" Description="Product1" ImageUrl=""
ProductId="1"
ProductLink="" PublicPrice="1" Quantity="1" Reduce="0" TaxRate="0"
Text="Commander"
UnitSale="1" />

and would like to trap the on click event in a code inside page to
redirect the user to a page showing the cart content :

void btnOrderClicked(object Source, ImageClickEventArgs e) {
Response.Redirect("cart.aspx");
}

Is there a way to achieve this?
Thanks for your help.
AB, Switzerland

Marc Chouteau

unread,
Jul 11, 2010, 4:32:17 AM7/11/10
to Open Shopping Cart
Hi !

You can create your own control derive from AddToCartImageButton and
insert your code in the RaisePostDataChangedEvent with

public void RaisePostBackEvent(string eventArgument)
{
Insert();
// Redirect to cart page here
<-------------------------
}

Marc Chouteau

Marc Chouteau

unread,
Jul 11, 2010, 5:48:47 AM7/11/10
to Open Shopping Cart
Plus simple en Français ;)

Il y a pas mal de solutions envisageables

concernant ce que je viens de repondre, vous pouuvez etendre le
composant avec vos propre controles de la manière suivante :

vous ajouter votre namespace dans le fichier web.config ou en
directive de la page pour declarer votre propre assembly.

<pages>
<controls>
<add tagPrefix="cart"
namespace="Serialcoder.ShoppingCart.Web.UI.WebControls"
assembly="Serialcoder.ShoppingCart"/>
<add tagPrefix="mycart"
namespace="MyAssembly.ShoppingCart.Web.UI.WebControls"
assembly="MyAssembly"/>
</controls>
</pages>

le controle dans la page peut alors etre :

<mycart:myaddtocartbutton .../>

le controle myaddtocartbutton peut etre ecrit comme ceci :

namespace MyAssembly.ShoppingCart.Web.UI.WebControls
{
[Designer(typeof(Designers.AddToCartImageButtonDesigner))]
[ToolboxData("<{0}:MyAddToCartImageButton runat=\"server\" Text=
\"AddToCart\"></{0}:AddToCartImageButton>")]
[DefaultProperty("Text")]
[ToolboxItem(false)]
public class MyAddToCartImageButton :
Serialcoder.ShoppingCart.Web.UI.WebControls.AddToCartImageButton,
IPostBackDataHandler
{

public void RaisePostDataChangedEvent()
{
Insert();
Redirect("/MyCartPage.aspx");
}

}
}

une autre solution consisterait effectivement à modifier le composant
en pouvant indiquer qu'il faut faire un redirect "optionnel" lors de
l'ajout au panier par exemple en indiquant l'url du panier dans le
controle

<cart:AddToCartImageButton runat="server" id="uxAddToCartImageButton"
Src="~/images/btn-atc.gif" Availability="50"
Code="P4" DefaultQuantity="5" Description="Product4" ImageUrl=""
ProductId="4"
ProductLink="" PublicPrice="15.0" Quantity="1" Reduce="0"
TaxRate="0.196" Text="Add P4"
UnitSale="1" PostbackUrl="/cart.aspx" />

si la propriété postbackUrl est renseignée alors il faut faire un
redirect.

Marc

> Bonjour,
> Merci pour votre réponse. Je ne suis pas très au clair concernant la méthode
> pour créer ce contrôle.
> Est-ce que le mieux est de rajouter ce code donc ce contrôle dans la dll du
> shoping cart que vous avez crée? SI la réponse est oui, ne vaudrait-il pas
> mieux étendre le contrôle existant?
> Et est-ce que cette dll est modifiable avec VisualStudio Express?
> Ou est-ce possible de faire tout cela avec notepad dans une page avec du
> code inside?
> Merci pour votre composant.
Reply all
Reply to author
Forward
0 new messages