B
bill yeager
I have several template columns inside of a datagrid.
Inside of these template columns are databound listboxes:
<asp:TemplateColumn HeaderText="Crew Chiefs">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstCrewChief" runat="server"
Rows="1" DataSource="<%# DsCrewChief1 %>" Enabled="True"
SelectionMode="Single" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="EMT's/Drivers">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstEMTDriver" runat="server"
Rows="1" DataSource="<%# DsEMTDriver1 %>" Enabled="True"
SelectionMode="Single" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Riders">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstRider" runat="server" Rows="1"
DataSource="<%# DsRider1 %>" Enabled="True"
SelectionMode="Multiple" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
I would like to do 2 things with these listboxes: One, is
to set the selected value in the listbox to the values I
retrieve in the database. The second, is to set the
selected values in the listboxes to values before I write
the data to the database.
I'm confused about the ITEMDatabound event of the
datagrid. Is this event used to get the values of the
listboxes BEFORE I write the data to the database (which I
think it is)? If so, is there an event I need to use to
SET the values in the listboxes to the values I retrieved
from the database? If there is no event, how do I go about
setting the values of the listboxes?
Also, how do I set and retrieve values from a listbox that
can have multiple selections...
Below is the code I have for the ItemDataBound
event...........
Private Sub DataGrid1_ItemDataBound(ByVal sender As
Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
DataGrid1.ItemDataBound
'Get the correct values for the listboxes
If e.Item.ItemType = ListItemType.Item Then
Dim lstCrewChiefTemp As ListBox
Dim lstEMTsDriverTemp As ListBox
Dim lstRiderTemp As ListBox
lstCrewChiefTemp = e.Item.FindControl
("lstCrewChief")
lstCrewChiefTemp.SelectedIndex =
lstCrewChiefTemp.Items.IndexOf
(lstCrewChiefTemp.Items.FindByValue(e.Item.DataItem
("Username")))
lstEMTsDriverTemp = e.Item.FindControl
("lstEMTDriver")
lstEMTsDriverTemp.SelectedIndex =
lstEMTsDriverTemp.Items.IndexOf
(lstEMTsDriverTemp.Items.FindByValue(e.Item.DataItem
("Username")))
lstRiderTemp = e.Item.FindControl("lstRider")
lstRiderTemp.SelectedIndex =
lstRiderTemp.Items.IndexOf(lstRiderTemp.Items.FindByValue
(e.Item.DataItem("Username")))
End If
End Sub
Thanks,
Bill.
Inside of these template columns are databound listboxes:
<asp:TemplateColumn HeaderText="Crew Chiefs">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstCrewChief" runat="server"
Rows="1" DataSource="<%# DsCrewChief1 %>" Enabled="True"
SelectionMode="Single" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="EMT's/Drivers">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstEMTDriver" runat="server"
Rows="1" DataSource="<%# DsEMTDriver1 %>" Enabled="True"
SelectionMode="Single" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Riders">
<ItemTemplate>
<asp:listbox AutoPostBack="False"
BackColor="#ffffff" id="lstRider" runat="server" Rows="1"
DataSource="<%# DsRider1 %>" Enabled="True"
SelectionMode="Multiple" DataTextField="UserName"
DataValueField="UserName" />
</asp:listbox>
</ItemTemplate>
</asp:TemplateColumn>
I would like to do 2 things with these listboxes: One, is
to set the selected value in the listbox to the values I
retrieve in the database. The second, is to set the
selected values in the listboxes to values before I write
the data to the database.
I'm confused about the ITEMDatabound event of the
datagrid. Is this event used to get the values of the
listboxes BEFORE I write the data to the database (which I
think it is)? If so, is there an event I need to use to
SET the values in the listboxes to the values I retrieved
from the database? If there is no event, how do I go about
setting the values of the listboxes?
Also, how do I set and retrieve values from a listbox that
can have multiple selections...
Below is the code I have for the ItemDataBound
event...........
Private Sub DataGrid1_ItemDataBound(ByVal sender As
Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles
DataGrid1.ItemDataBound
'Get the correct values for the listboxes
If e.Item.ItemType = ListItemType.Item Then
Dim lstCrewChiefTemp As ListBox
Dim lstEMTsDriverTemp As ListBox
Dim lstRiderTemp As ListBox
lstCrewChiefTemp = e.Item.FindControl
("lstCrewChief")
lstCrewChiefTemp.SelectedIndex =
lstCrewChiefTemp.Items.IndexOf
(lstCrewChiefTemp.Items.FindByValue(e.Item.DataItem
("Username")))
lstEMTsDriverTemp = e.Item.FindControl
("lstEMTDriver")
lstEMTsDriverTemp.SelectedIndex =
lstEMTsDriverTemp.Items.IndexOf
(lstEMTsDriverTemp.Items.FindByValue(e.Item.DataItem
("Username")))
lstRiderTemp = e.Item.FindControl("lstRider")
lstRiderTemp.SelectedIndex =
lstRiderTemp.Items.IndexOf(lstRiderTemp.Items.FindByValue
(e.Item.DataItem("Username")))
End If
End Sub
Thanks,
Bill.