J
John Martin
I've made an .NET application where the contents of a datagrid (dgr1)
is changed when the user changes the selection in a drop-down list
(drd1). This has works fine as a beginning.
Then I want to manipulate the look of the datagrid.
I do this in the ItemCreated event, and on the first run (application
start) this works as supposed. But when a selection is made in drd1, I
find during debugging that the dgr1_ItemCreated event is fired before
the drd1_SelectedIndexChanged. Since the update of the dataset is
performed in the SelectedIndexChanged event, this results in an error.
Why are the events fired in this order? To me it seems obvious that
the SelectedIndexChanged event should be fired first, or???
This is parts of my code showing the two events:
Private Sub Dgr1_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
Dgr1.ItemCreated
Dim MyObj As Object
If e.Item.ItemType = ListItemType.Header Then
e.Item.Font.Italic = True
e.Item.Font.Bold = True
End If
If Not ((e.Item.ItemType.ToString() = "Header") Or
(e.Item.ItemType.ToString() = "Footer")) Then
MyObj = CType(e.Item.DataItem, Object)
' Dummy declared at page level
If Dummy <> MyObj.row.itemarray(0) Then
Dummy = MyObj.row.itemarray(0)
Else
e.Item.Visible = False
End If
End If
End Sub
Private Sub drd1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmbCategory.SelectedIndexChanged
'Update parameter
SqlDataAdapter1.SelectCommand.Parameters(1).Value =
drd1.SelectedItem.Value
'Update Dataset1
DataSet1.Clear()
SqlDataAdapter1.Fill(DataSet1)
Drg1.DataBind()
End sub
Any suggestions how to fix this?
Regards,
John Martin
is changed when the user changes the selection in a drop-down list
(drd1). This has works fine as a beginning.
Then I want to manipulate the look of the datagrid.
I do this in the ItemCreated event, and on the first run (application
start) this works as supposed. But when a selection is made in drd1, I
find during debugging that the dgr1_ItemCreated event is fired before
the drd1_SelectedIndexChanged. Since the update of the dataset is
performed in the SelectedIndexChanged event, this results in an error.
Why are the events fired in this order? To me it seems obvious that
the SelectedIndexChanged event should be fired first, or???
This is parts of my code showing the two events:
Private Sub Dgr1_ItemCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
Dgr1.ItemCreated
Dim MyObj As Object
If e.Item.ItemType = ListItemType.Header Then
e.Item.Font.Italic = True
e.Item.Font.Bold = True
End If
If Not ((e.Item.ItemType.ToString() = "Header") Or
(e.Item.ItemType.ToString() = "Footer")) Then
MyObj = CType(e.Item.DataItem, Object)
' Dummy declared at page level
If Dummy <> MyObj.row.itemarray(0) Then
Dummy = MyObj.row.itemarray(0)
Else
e.Item.Visible = False
End If
End If
End Sub
Private Sub drd1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmbCategory.SelectedIndexChanged
'Update parameter
SqlDataAdapter1.SelectCommand.Parameters(1).Value =
drd1.SelectedItem.Value
'Update Dataset1
DataSet1.Clear()
SqlDataAdapter1.Fill(DataSet1)
Drg1.DataBind()
End sub
Any suggestions how to fix this?
Regards,
John Martin