CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 1 of 1
  1. #1
    Join Date
    Mar 2007
    Posts
    210

    button in webcontrol added to datagrid event not firing

    hi all,

    hopefully you can help.

    i have created a web control for my add to cart button. this is working fine in my static pages. however, i have a search page which hold a data grid. when the users searches it i want to add an instance of this add to cart button to the datagrid. however when i click the added button its not triggering the click event in the control. can someone explain why.

    I've tried the following way

    Code:
    <asp:DataGrid 
    OnEditCommand="ItemsGrid_Edit" 
    CssClass="SearchBody" 
    AlternatingItemStyle-BackColor="GhostWhite" 
    id="search_datagrid" 
    AutoGenerateColumns=False 
    AllowPaging="True"
    PageSize="20" 
    OnItemCreated="DataGrid_ItemCreated"
    OnPageIndexChanged="PageIndexChanged_Click"
    PagerStyle-Mode="NumericPages"  
    runat="server">
    
    with my page_load event being
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            'If Not Page.IsPostBack Then
    
            oDataSet = CreateDataSource()
            Session("searchDataSet") = oDataSet
    
            If oDataSet.Tables(0).Rows.Count = 0 Then
                gridEmptyLabel.Text = "The search returned back no results"
                gridEmptyLabel.Visible = True
            Else
                search_datagrid.DataSource = oDataSet
                search_datagrid.DataBind()
    
                'add the addcart buttons here
                addCartButtonsToDataGrid(search_datagrid)
            End If
    
            'End If
    
        End Sub
    
    and 
    
       Sub addCartButtonsToDataGrid(ByVal grid As DataGrid)
    
            For i = 0 To grid.Items.Count - 1
    
                Dim item As DataGridItem = grid.Items(i)
                Dim bPlaceHolder As PlaceHolder = item.FindControl("addToCartPlaceholder")
    
                Dim productID As Label = item.FindControl("productID")
                Dim productName As HyperLink = item.FindControl("productName")
                Dim sizeID As Label = item.FindControl("sizeID")
                Dim size As Label = item.FindControl("size")
                Dim flavours As DropDownList = item.FindControl("FlavourDropDown")
                Dim price As Label = item.FindControl("productPrice")
                Dim quantity As TextBox = item.FindControl("quantity")
    
                If item.ItemType = ListItemType.Item Or item.ItemType = ListItemType.AlternatingItem Then
                    'finally set the add to cart button
                    addButton = DirectCast(LoadControl("~/cart/add_to_cart_control/add_to_cart.ascx"), add_to_cart)
                    addButton.productID = productID.Text
                    addButton.product = productName.Text
                    addButton.sizeID = sizeID.Text
                    addButton.size = size.Text
                    addButton.flavourID = flavours.SelectedIndex
                    addButton.flavour = flavours.SelectedValue.ToString
                    addButton.price = price.Text
                    addButton.Quantity = 1 'quantity.Text
                    addButton.Attributes.Add("oncommand", "AddProductToCart")
    
                    bPlaceHolder.Controls.Add(addButton)
                End If
    
            Next
    
        End Sub
    
    i have also tried adding the button in the onitemcreated event
    
            'now create the add button and add
    
            'If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
            ''finally set the add to cart button
            'addButton = DirectCast(LoadControl("~/cart/add_to_cart_control/add_to_cart.ascx"), add_to_cart)
            'addButton.productID = productID.Text
            'addButton.product = productName.Text
            'addButton.sizeID = sizeID.Text
            'addButton.size = size.Text
            'addButton.flavourID = flavours.SelectedIndex
            'addButton.flavour = flavours.SelectedValue.ToString
            'addButton.price = price.Text
            'addButton.Quantity = quantity.Text
    
            'placeHolder.Controls.Add(addButton)
            'End If

    now both seem to add the button but its losing the click event the ascx is simply

    ----------------------------ascx-------------------------------

    Code:
    <&#37;@ Control Language="VB" AutoEventWireup="true" CodeFile="add_to_cart.ascx.vb" Inherits="add_to_cart" %>
    <%@ Reference Control="~/main/left_side_frame/basket/side_cart.ascx" %>
    <asp:button id="add_to_cart_button" text="Add to Cart" OnCommand="AddProductToCart" runat="server"/>
    --------------------------ascx.vb-----------------------------

    Code:
       Sub AddProductToCart(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs) Handles add_to_cart_button.Click
    ...

    End Sub

    any ideas why?

    many thanks in advance,

    Matt.
    Last edited by PeejAvery; November 25th, 2008 at 11:12 AM. Reason: Added code tags.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured