Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

why does hiding label and calling dropdownlist make all of listitems go blank

Posted on 2014-10-02
5
Medium Priority
?
153 Views
Last Modified: 2014-10-09
dropdownlist are filled from the same table which is only used to fill 4 dropdownlists.  The values selected are stored in another table by soc sec. number.  I want the users to see what they selected the last time they edited their time sheet.
the first dropdownlist (this one shows numbers) has all of the numbers for a 24 hour clock; but I want to show what the previous choosen value was rather than starting with 0:00
I tried adding a label in the second dropdownlist then hiding it and showing the dropdownlist.  Problem here is that now the list is empty.
Did I miss something with the label? or is there a way of of reading the time sheet and choosing that same item in the drop down list and showing it as the starting value for the dropdownlist?   Example the default time to start work is 8:00, this shows up in the dropdownlist with the label in the label; is there a way to show 8:00 when going to edit mode instead of 0:00?
I would sooner the dropdownlist show the correct time without using the labels, but at this point any solution that works would be acceptable.
haven't written code to write selection back to other table yet.

suggestions?
gary
     <asp:TemplateField HeaderText="IN">          
                  <ItemTemplate>            
           
             <asp:DropDownList ID="DropDownList1" runat="server"  >                          
                 </asp:DropDownList>  
                 </ItemTemplate>        
             </asp:TemplateField>    

        <asp:TemplateField HeaderText="OUT">
           <ItemTemplate>
           <asp:Label ID="lblout" runat="server" Text='<%# Eval("EndTime")%>' ></asp:Label>
               </ItemTemplate>
                  <EditItemTemplate>
               <asp:Label ID="lblout" runat="server" Text='<%# Bind("EndTime")%>' Visible = "False"></asp:Label>
             <asp:DropDownList ID="DropDownList2" runat="server"  >              
                 </asp:DropDownList>        
          </editItemTemplate>
             </asp:TemplateField>

 Sub CustomersGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        Dim sqlfindhrsfill As String
       
        If e.Row.RowType = DataControlRowType.DataRow Then
            Try
             
                sqlfindhrsfill = "Select JobCode from testday "
                Using adapter8 As SqlDataAdapter = New SqlDataAdapter(sqlfindhrsfill, Connection)
                    Connection.Open()
                    adapter8.Fill(Dst, "Dsthrslist")
                   
                    Dim ddl1 = DirectCast(e.Row.FindControl("DropDownlist1"), DropDownList)
                    ddl1.DataSource = Dst.Tables("DsthrsList")
                    ddl1.DataTextField = "Jobcode"
                    ddl1.DataValueField = "JobCode"
                    'ddl1.SelectedValue = '<%# Bind("Starttime") %>'
                    ddl1.DataBind()
                    Dim ddl2 = DirectCast(e.Row.FindControl("DropDownlist2"), DropDownList)
                    ddl2.DataSource = Dst.Tables("DsthrsList")
                    ddl2.DataTextField = "Jobcode"
                    ddl2.DataValueField = "JobCode"
                    ddl2.DataBind()
                    Dim ddl3 = DirectCast(e.Row.FindControl("DropDownlist3"), DropDownList)
                    ddl3.DataSource = Dst.Tables("DsthrsList")
                    ddl3.DataTextField = "Jobcode"
                    ddl3.DataValueField = "JobCode"
                    ddl3.DataBind()
                    Dim ddl4 = DirectCast(e.Row.FindControl("DropDownlist4"), DropDownList)
                    ddl4.DataSource = Dst.Tables("DsthrsList")
                    ddl4.DataTextField = "Jobcode"
                    ddl4.DataValueField = "JobCode"
                    ddl4.DataBind()
                End Using
            Catch
            End Try
            Connection.Close()
        End If
    End Sub
0
Comment
Question by:javagair
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 29

Expert Comment

by:sammySeltzer
ID: 40359654
Hiding them just doesn't hide the label from users, it hides the values as well and you will have to write an additional code in pageload() event to unhide them.

Too much work!

Easiest solution is to use styles to hide them and still make the values availale:

So, instead of this:

<asp:Label ID="lblout" runat="server" Text='<%# Bind("EndTime")%>' Visible = "False"></asp:Label>

Open in new window


use this:

<asp:Label ID="lblout" runat="server" Text='<%# Bind("EndTime")%>' style="display:none"></asp:Label>

Open in new window


*NOW*, you hide the label but value is not hidden.
0
 

Author Comment

by:javagair
ID: 40360004
adding code causes this error
Failed to load viewstate.  The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.  For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.
0
 

Author Comment

by:javagair
ID: 40360012
added the following code to rowedit and rowupdate
dropdownlist always shows the selection correctly for what is stored in both tables.

gary
 Try
                sqlfindhrsfill = "Select JobCode from testday "
                Using adapter8 As SqlDataAdapter = New SqlDataAdapter(sqlfindhrsfill, Connection)
                    Connection.Open()
                    adapter8.Fill(Dst, "Dsthrslist")
                    Dim ddl1 = DirectCast(CustomersGridView.Rows(e.NewEditIndex).FindControl("DropDownlist1"), DropDownList)
                    ddl1.DataSource = Dst.Tables("DsthrsList")
                    ddl1.DataTextField = "Jobcode"
                    ddl1.DataValueField = "JobCode"
                    ddl1.SelectedValue = Dst.Tables("Dstaccuminfo2").Rows(0).Item(3).ToString()
                    ddl1.DataBind()
                    Dim ddl2 = DirectCast(CustomersGridView.Rows(e.NewEditIndex).FindControl("DropDownlist2"), DropDownList)
                   
                    ddl2.DataSource = Dst.Tables("DsthrsList")
                    ddl2.DataTextField = "Jobcode"
                    ddl2.DataValueField = "JobCode"
                    ddl2.SelectedValue = Dst.Tables("Dstaccuminfo2").Rows(0).Item(4).ToString()
                    ddl2.DataBind()
                    Dim ddl3 = DirectCast(CustomersGridView.Rows(e.NewEditIndex).FindControl("DropDownlist3"), DropDownList)
                    ddl3.DataSource = Dst.Tables("DsthrsList")
                    ddl3.DataTextField = "Jobcode"
                    ddl3.DataValueField = "JobCode"
                    ddl3.SelectedValue = Dst.Tables("Dstaccuminfo2").Rows(0).Item(5).ToString()
                    ddl3.DataBind()
                    Dim ddl4 = DirectCast(CustomersGridView.Rows(e.NewEditIndex).FindControl("DropDownlist4"), DropDownList)
                    ddl4.DataSource = Dst.Tables("DsthrsList")
                    ddl4.DataTextField = "Jobcode"
                    ddl4.DataValueField = "JobCode"
                    ddl4.SelectedValue = Dst.Tables("Dstaccuminfo2").Rows(0).Item(6).ToString()
                    ddl4.DataBind()
                End Using
            Catch
            End Try
0
 
LVL 29

Accepted Solution

by:
sammySeltzer earned 2000 total points
ID: 40360910
That didn't cause that error.
0
 

Author Closing Comment

by:javagair
ID: 40371283
you are right
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question