Actually we're in a datalist. It sorta in the edit mode. Let me see if I can explain this. To bind the causetype and causedetail dropdownlist to the table in the edit mode I use the top code (1.) which is in the dlIncident_itemDataBound sub and actually works fine. But If the user decides to change the causetype ddl, (the details must change along with it.) the second code (which is html) (2.) the "onselectedindexchange" executes and sends it to the dlIncident_SelectedIndexChanges sub.(3.) Which I was hoping would bind the causedetails (4.) depending on what causetype will be selected. Am I making any sense? I'm sorry if i confused you;}
1.) Public Sub dlIncident_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlIncident.ItemDataBound
If e.Item.ItemType = ListItemType.EditItem Then 'if datalist is in edit mode
'Load Causes dropdownlist
connFF = New SqlConnection(Application("connFF"))
Dim cmdCauses As SqlCommand = New SqlCommand("Select vchcauses from luFFCauses", connFF)
Dim dtrCauses As SqlDataReader
Dim ddlCausetype As DropDownList = CType(e.Item.FindControl("ddlCausetype"), DropDownList)
Try
connFF.Open()
dtrCauses = cmdCauses.ExecuteReader
ddlCausetype.DataSource = dtrCauses
ddlCausetype.DataTextField = "vchcauses"
ddlCausetype.DataValueField = "vchcauses"
ddlCausetype.DataBind()
dtrCauses.Close()
connFF.Close()
Catch er As Exception
LogError(er.ToString, "Edit.aspx-Load Causes dropdownlist")
Exit Try
Finally
connFF.Close()
End Try
'Load Cause Details dropdownlist
connFF = New SqlConnection(Application("connFF"))
Dim intCounter As Integer
Dim ddlCauseDetails As DropDownList = CType(e.Item.FindControl("ddlCauseDetails"), DropDownList)
Dim cmdCauseDetails As New SqlCommand("spFFGetCauseDetails", connFF)
cmdCauseDetails.CommandType = CommandType.StoredProcedure
Dim prmCauseDetail As New SqlParameter("@CauseType", SqlDbType.VarChar)
prmCauseDetail.Value = ddlCausetype.SelectedValue
cmdCauseDetails.Parameters.Add(prmCauseDetail)
Dim dtrDetails As SqlDataReader
Try
connFF.Open()
dtrDetails = cmdCauseDetails.ExecuteReader
ddlCauseDetails.DataSource = dtrDetails
ddlCauseDetails.DataTextField = "Details"
ddlCauseDetails.DataValueField = "Details"
ddlCauseDetails.DataBind()
'While dtrDetails.Read
' Dim newListItem As New ListItem
' newListItem.Value = dtrDetails.GetString(0)
' ddlCauseDetails.Items.Add(newListItem)
' intCounter += 1
'End While
'Loop
dtrDetails.Close()
connFF.Close()
Catch er As Exception
LogError(er.ToString, "Load CauseDetails Dropdownlist-Edit.aspx")
Exit Try
Finally
connFF.Close()
End Try
2.)<asp:DropDownList id="ddlcausetype" runat="server" OnSelectedIndexChanged="dlIncident_SelectedIndexCh anged"
Width="272px" ForeColor="Gray" AutoPostBack="True"></asp:DropDownList></TD>
(3.) Sub dlIncident_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dlIncident.SelectedIndexChanged
Dim ddlCausedetails As DropDownList
BindCauseDetails(ddlCausedetails)
End Sub
(4.)Private Sub BindCauseDetails(ByVal ddl As DropDownList)
connFF = New SqlConnection(Application("connFF"))
Dim ddlcausetype As DropDownList
Dim intCounter As Integer
Dim ddlCauseDetails As DropDownList
Dim cmdCauseDetails As New SqlCommand("spFFGetCauseDetails", connFF)
cmdCauseDetails.CommandType = CommandType.StoredProcedure
Dim prmCauseDetail As New SqlParameter("@CauseType", SqlDbType.VarChar)
prmCauseDetail.Value = ddlcausetype.SelectedItem.Value
cmdCauseDetails.Parameters.Add(prmCauseDetail)
Dim dtrDetails As SqlDataReader
Try
connFF.Open()
dtrDetails = cmdCauseDetails.ExecuteReader
ddlCauseDetails.DataSource = dtrDetails
ddlCauseDetails.DataTextField = "Details"
ddlCauseDetails.DataValueField = "Details"
ddlCauseDetails.DataBind()
dtrDetails.Close()
connFF.Close()
Catch er As Exception
LogError(er.ToString, "CauseDetails-Incident.aspx")
Exit Try
Finally
connFF.Close()
End Try
End Sub