[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.aspnet.webcontrols

Web Custom Control - Datagrid Event Handling Problem

(The Alchemist)

7/22/2004 12:11:00 AM

I am having a problem with a dynamically-generated Datagrid. It is
important to point out that this problem does not exist with a
design-time created Datagrid, but only with a dynamically generated
Datagrid in a Web Custom Control (WCC) :

The datagrid has LinkButton Column which has a select LinkButton for
each row. When this button is clicked, the Datagrid raises its
'ItemCommand' event which captures the information for that row and
sends it to a event handler method. The problem is that this method is
never getting called. It seems logical to assume that there is
something wrong with the event-wiring of the datagrid. The signature
of the event-handler is:

Private Sub DataGrid1_SelectedIndexChanged(ByVal source As Object,
ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
dg.ItemCommand

(dg is the name of the datagrid). The 'Handles' keyword in VB.Net is
supposed to wire the event to the handler but that is not happening.
So I tried to manually add the handler to the event with the following
line of code in the CreateChildControls method of the WCC using the
line:

AddHandler dg.ItemCommand, AddressOf Me.DataGrid1_SelectedIndexChanged

That does not work either. The datagrid loads up just fine, and on
selecting a row it does a PostBack and hits the OnLoad event but never
hits the event-handler method.

Why is this event not being wired to the handler? Or might there be
some other problem?

Thanks in advance for any help.



BZ
1 Answer

John Saunders

6/8/2004 4:48:00 AM

0

"The Alchemist" <alkamista@lycos.com> wrote in message
news:ee4cf350.0406071750.814df18@posting.google.com...
> "Raterus" <raterus@spam.org> wrote in message
news:<u#CSFiMTEHA.3476@tk2msftngp13.phx.gbl>...
> > I'll be nice though and answer your question, you haven't
> > re-instantiated your datagrid in page load of the postbacked page, and
> > given it the same ID as the previous page had.
>
> Yes I did and it does not not work.
>
> I am posting the code below, any help would be MUCH appreciated.
>
>
> Imports System.ComponentModel
> Imports System.Web.UI
> Imports System.web.UI.WebControls
>
> <DefaultProperty("Text"), ToolboxData("<{0}:WebCustomControl1
> runat=server></{0}:WebCustomControl1>")> Public Class
> WebCustomControl1
> Inherits System.Web.UI.WebControls.WebControl
>
> Protected WithEvents dg As DataGrid
> Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
>
> dg = New DataGrid
> dg.BackColor = System.Drawing.Color.Red
> dg.ID = "testID"
> 'I tried the following line instead of using the handles
> keyword and that didnt work either:
> 'AddHandler dg.ItemCommand, AddressOf
> Me.DataGrid1_SelectedIndexChanged
> Controls.Add(dg)
>
> End Sub

How about MyBase.OnLoad(e)
--
John Saunders
johnwsaundersiii at hotmail