K
KJ
My Events are not firing. Viewstate is Enabled. My Datagrid's
datasource is being set after the Page Load. Is that a problem?
How can I make it work?
Protected Overrides Sub CreateChildControls()
bcI.HeaderText = "he"
bcI.DataField = "he"
bcN.HeaderText = "number"
bcN.DataField = "number"
bcP.HeaderText = "name"
bcP.DataField = "name"
bcU.HeaderText = "has"
bcU.DataField = "has"
tc.ItemTemplate = New DataGridTemplate(ListItemType.Item,
"Column1")
dgItems.Columns.AddAt(0, tc)
dgItems.Columns.AddAt(1, bcN)
dgItems.Columns.AddAt(2, bcI)
dgItems.Columns.AddAt(3, bcP)
dgItems.Columns.AddAt(4, bcU)
dgItems.Columns.AddAt(5, bcP)
dgItems.Columns.AddAt(6, bcCF)
dgItems.Columns.AddAt(7, bcCFC)
dgItems.EnableViewState = True
Controls.Add(dgItems)
AddHandler dgItems.ItemCommand, AddressOf dgItemClick
End Sub
Public Sub BindDataGrid()
dgItems.DataBind()
End Sub
Private Sub dgItems_DataBinding(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dgItems.DataBinding
EnsureChildControls()
End Sub
End Class
Public Class DataGridTemplate
Implements ITemplate
Dim ib As New ImageButton()
Dim templateType As ListItemType
Dim columnName As String
Event Item_Click(ByVal source As Object, ByVal e As
System.Web.UI.ImageClickEventArgs)
Sub New(ByVal type As ListItemType, ByVal ColName As String)
templateType = type
columnName = ColName
End Sub
Sub InstantiateIn(ByVal container As Control) _
Implements ITemplate.InstantiateIn
Dim ib As New ImageButton()
ib.ImageUrl = "Select.gif"
ib.ToolTip = "Select Item"
ib.ImageAlign = ImageAlign.AbsBottom
ib.CommandName = "Select"
AddHandler ib.Click, AddressOf ItemClick
container.Controls.Add(ib)
End Sub
Public Sub ItemClick(ByVal sender As Object, _
ByVal e As
System.Web.UI.ImageClickEventArgs)
OnClick(e)
End Sub
Protected Overridable Sub OnClick(ByVal e As
System.Web.UI.ImageClickEventArgs)
RaiseEvent Item_Click(Me, e)
End Sub
End Class
----*****************************-----
Page Load
abc.BindDataGrid()
End Sub
datasource is being set after the Page Load. Is that a problem?
How can I make it work?
Protected Overrides Sub CreateChildControls()
bcI.HeaderText = "he"
bcI.DataField = "he"
bcN.HeaderText = "number"
bcN.DataField = "number"
bcP.HeaderText = "name"
bcP.DataField = "name"
bcU.HeaderText = "has"
bcU.DataField = "has"
tc.ItemTemplate = New DataGridTemplate(ListItemType.Item,
"Column1")
dgItems.Columns.AddAt(0, tc)
dgItems.Columns.AddAt(1, bcN)
dgItems.Columns.AddAt(2, bcI)
dgItems.Columns.AddAt(3, bcP)
dgItems.Columns.AddAt(4, bcU)
dgItems.Columns.AddAt(5, bcP)
dgItems.Columns.AddAt(6, bcCF)
dgItems.Columns.AddAt(7, bcCFC)
dgItems.EnableViewState = True
Controls.Add(dgItems)
AddHandler dgItems.ItemCommand, AddressOf dgItemClick
End Sub
Public Sub BindDataGrid()
dgItems.DataBind()
End Sub
Private Sub dgItems_DataBinding(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dgItems.DataBinding
EnsureChildControls()
End Sub
End Class
Public Class DataGridTemplate
Implements ITemplate
Dim ib As New ImageButton()
Dim templateType As ListItemType
Dim columnName As String
Event Item_Click(ByVal source As Object, ByVal e As
System.Web.UI.ImageClickEventArgs)
Sub New(ByVal type As ListItemType, ByVal ColName As String)
templateType = type
columnName = ColName
End Sub
Sub InstantiateIn(ByVal container As Control) _
Implements ITemplate.InstantiateIn
Dim ib As New ImageButton()
ib.ImageUrl = "Select.gif"
ib.ToolTip = "Select Item"
ib.ImageAlign = ImageAlign.AbsBottom
ib.CommandName = "Select"
AddHandler ib.Click, AddressOf ItemClick
container.Controls.Add(ib)
End Sub
Public Sub ItemClick(ByVal sender As Object, _
ByVal e As
System.Web.UI.ImageClickEventArgs)
OnClick(e)
End Sub
Protected Overridable Sub OnClick(ByVal e As
System.Web.UI.ImageClickEventArgs)
RaiseEvent Item_Click(Me, e)
End Sub
End Class
----*****************************-----
Page Load
abc.BindDataGrid()
End Sub