| re: Web Custom Control - Datagrid Event Handling Problem
"Raterus" <raterus@spam.org> wrote in message news:<u#CSFiMTEHA.3476@tk2msftngp13.phx.gbl>...[color=blue]
> Please don't crosspost, this post has no business in these forums as it
> has nothing to do with VB or VB's controls.
>
> microsoft.public.dotnet.languages.vb,
> microsoft.public.dotnet.languages.vb.controls[/color]
This control is written in VB.Net, how can it not be relevant to these
groups?
[color=blue]
>
> 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.[/color]
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 Render(ByVal output As
System.Web.UI.HtmlTextWriter)
Dim DataTable As New DataTable
Dim col As New DataColumn
col.ColumnName = "Last Name"
DataTable.Columns.Add(col)
Dim col2 As New DataColumn
col2.ColumnName = "First Name"
DataTable.Columns.Add(col2)
Dim col3 As New DataColumn
col3.ColumnName = "Level"
DataTable.Columns.Add(col3)
Dim selectColumn As New ButtonColumn
selectColumn.ButtonType = ButtonColumnType.LinkButton
selectColumn.CommandName = "select"
selectColumn.Text = "select"
dg.Columns.Add(selectColumn)
Dim row As DataRow
row = DataTable.NewRow
row.Item(0) = "Smith"
row.Item(1) = "John"
row.Item(2) = "Level 1"
DataTable.Rows.Add(row)
row = DataTable.NewRow
row.Item(0) = "Jones"
row.Item(1) = "Mary"
row.Item(2) = "Level 2"
DataTable.Rows.Add(row)
dg.DataSource = DataTable
dg.DataBind()
dg.RenderControl(output)
End Sub
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
'Public Sub bz()
Private Sub DataGrid1_SelectedIndexChanged(ByVal source As Object,
ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles
dg.ItemCommand
Debug.WriteLine("The event handler has been called.")
End Sub
End Class
[color=blue]
>
> "The Alchemist" <alkamista@lycos.com> wrote in message
> news:ee4cf350.0406071137.2f10687c@posting.google.c om...[color=green]
> > 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[/color][/color] |