Ask a Question related to ASP.NET General, Design and Development.

  1. #1

    Default listboxes.........

    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.DataIte m
    ("Username")))
    lstEMTsDriverTemp = e.Item.FindControl
    ("lstEMTDriver")
    lstEMTsDriverTemp.SelectedIndex =
    lstEMTsDriverTemp.Items.IndexOf
    (lstEMTsDriverTemp.Items.FindByValue(e.Item.DataIt em
    ("Username")))
    lstRiderTemp = e.Item.FindControl("lstRider")
    lstRiderTemp.SelectedIndex =
    lstRiderTemp.Items.IndexOf(lstRiderTemp.Items.Find ByValue
    (e.Item.DataItem("Username")))
    End If

    End Sub

    Thanks,

    Bill.
    bill yeager Guest

  2. Similar Questions and Discussions

    1. maintain viewstate in listboxes
      I have an asp.net vb page with two web user controls on it. The first user control, uc1.ascx has a series of list boxes that are populated in...
    2. In IE 6 only HTML listboxes are displayed
      Try asking in an IE group. This group is for programming ASP pages. Ray at work "Daniel" <daniel_krause@web.de> wrote in message...
  3. #2

    Default listboxes.........

    Answer to Qn1.

    ItemDataBound is the method that is called just after the
    Data binding is over. This is the place where you add your
    code to choose what is selected in the list box.

    You can do it this way.

    Put this code in ItemDataBound with your regular check for
    ItemTypes.

    Dim lstCrewChiefTemp As ListBox
    lstCrewChiefTemp.Items.FindByValue("123").Selected = True

    Answer for Qn2.

    You can access the multiple items selected in ListBox as
    follows.

    dim item as ListItem
    For Each item in List1.Items
    if item.Selected = True Then
    'code to process the selected items.
    End if

    Next

    I guess this is what you are looking for. If NOT please
    reply back.

    With Regards
    Prakash R.
    >-----Original Message-----
    >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.DataIt em
    >("Username")))
    > lstEMTsDriverTemp = e.Item.FindControl
    >("lstEMTDriver")
    > lstEMTsDriverTemp.SelectedIndex =
    >lstEMTsDriverTemp.Items.IndexOf
    >(lstEMTsDriverTemp.Items.FindByValue(e.Item.DataI tem
    >("Username")))
    > lstRiderTemp = e.Item.FindControl("lstRider")
    > lstRiderTemp.SelectedIndex =
    >lstRiderTemp.Items.IndexOf(lstRiderTemp.Items.Fin dByValue
    >(e.Item.DataItem("Username")))
    > End If
    >
    > End Sub
    >
    >Thanks,
    >
    >Bill.
    >.
    >
    Prakash Ramdas Guest

  4. #3

    Default listboxes.........

    Prakash, is there an event I can use to set the values of
    the respective listboxes once I get to the page.

    At first, I load the listboxes (if not already in cache),
    then, I want to set the selected values in the listboxes
    to what they are in the database (via another query from
    a previous user update that the user had selected prior).

    If there is no event I can use, I was planning on looping
    thru the columns in the datagrid and setting the values
    of the listboxes that way........
    >-----Original Message-----
    >Answer to Qn1.
    >
    >ItemDataBound is the method that is called just after
    the
    >Data binding is over. This is the place where you add
    your
    >code to choose what is selected in the list box.
    >
    >You can do it this way.
    >
    >Put this code in ItemDataBound with your regular check
    for
    >ItemTypes.
    >
    >Dim lstCrewChiefTemp As ListBox
    >lstCrewChiefTemp.Items.FindByValue("123").Selecte d = True
    >
    >Answer for Qn2.
    >
    >You can access the multiple items selected in ListBox as
    >follows.
    >
    >dim item as ListItem
    >For Each item in List1.Items
    > if item.Selected = True Then
    > 'code to process the selected items.
    > End if
    >
    >Next
    >
    >I guess this is what you are looking for. If NOT please
    >reply back.
    >
    >With Regards
    >Prakash R.
    >>-----Original Message-----
    >>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.DataGridItemEventArg s)
    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.DataI tem
    >>("Username")))
    >> lstEMTsDriverTemp = e.Item.FindControl
    >>("lstEMTDriver")
    >> lstEMTsDriverTemp.SelectedIndex =
    >>lstEMTsDriverTemp.Items.IndexOf
    >>(lstEMTsDriverTemp.Items.FindByValue(e.Item.Data Item
    >>("Username")))
    >> lstRiderTemp = e.Item.FindControl
    ("lstRider")
    >> lstRiderTemp.SelectedIndex =
    >>lstRiderTemp.Items.IndexOf
    (lstRiderTemp.Items.FindByValue
    >>(e.Item.DataItem("Username")))
    >> End If
    >>
    >> End Sub
    >>
    >>Thanks,
    >>
    >>Bill.
    >>.
    >>
    >.
    >
    bill yeager Guest

  5. #4

    Default listboxes.........

    Bill,

    I would still use ItemDataBound to set the listbox
    selection.

    Here is an example of how I acheived in my own problem.
    The datagrid is databound. I have a column with the value
    of the listbox to be set with the selection. So, to set
    the listbox I pick the value from the other column, which
    is bound just before this event. In case where no
    selection is available for the row, a default string is
    inserted and selected in the listbox.

    If ViewState("InsertMode") = True Then
    CType(e.Item.Cells(6).FindControl("CompanyName"),
    DropDownList).Items.Insert(0, New ListItem("Select one", -
    99))
    Else
    ID = CType(e.Item.Cells(5).FindControl("CompanyID"),
    LiteralControl).Text
    CType(e.Item.Cells(6).FindControl("CompanyName"),
    DropDownList).Items.FindByValue(ID).Selected = True
    End If

    Hope this helps.
    Prakash R.
    >-----Original Message-----
    >Prakash, is there an event I can use to set the values of
    >the respective listboxes once I get to the page.
    >
    >At first, I load the listboxes (if not already in cache),
    >then, I want to set the selected values in the listboxes
    >to what they are in the database (via another query from
    >a previous user update that the user had selected prior).
    >
    >If there is no event I can use, I was planning on looping
    >thru the columns in the datagrid and setting the values
    >of the listboxes that way........
    >
    >>-----Original Message-----
    >>Answer to Qn1.
    >>
    >>ItemDataBound is the method that is called just after
    >the
    >>Data binding is over. This is the place where you add
    >your
    >>code to choose what is selected in the list box.
    >>
    >>You can do it this way.
    >>
    >>Put this code in ItemDataBound with your regular check
    >for
    >>ItemTypes.
    >>
    >>Dim lstCrewChiefTemp As ListBox
    >>lstCrewChiefTemp.Items.FindByValue("123").Select ed = True
    >>
    >>Answer for Qn2.
    >>
    >>You can access the multiple items selected in ListBox as
    >>follows.
    >>
    >>dim item as ListItem
    >>For Each item in List1.Items
    >> if item.Selected = True Then
    >> 'code to process the selected items.
    >> End if
    >>
    >>Next
    >>
    >>I guess this is what you are looking for. If NOT please
    >>reply back.
    >>
    >>With Regards
    >>Prakash R.
    >>>-----Original Message-----
    >>>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.Data Item
    >>>("Username")))
    >>> lstEMTsDriverTemp = e.Item.FindControl
    >>>("lstEMTDriver")
    >>> lstEMTsDriverTemp.SelectedIndex =
    >>>lstEMTsDriverTemp.Items.IndexOf
    >>>(lstEMTsDriverTemp.Items.FindByValue(e.Item.Dat aItem
    >>>("Username")))
    >>> lstRiderTemp = e.Item.FindControl
    >("lstRider")
    >>> lstRiderTemp.SelectedIndex =
    >>>lstRiderTemp.Items.IndexOf
    >(lstRiderTemp.Items.FindByValue
    >>>(e.Item.DataItem("Username")))
    >>> End If
    >>>
    >>> End Sub
    >>>
    >>>Thanks,
    >>>
    >>>Bill.
    >>>.
    >>>
    >>.
    >>
    >.
    >
    Prakash Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139