2016-07-30 11 views
1

Warum, wenn ein Benutzer eine andere Auswahl als Dropdown wählt, bleibt der Line1Co.Value immer auf 0?Geschützt Untername.ValueChanged nicht aktualisiert

Hier ist mein HTML:

 <asp:DropDownList ID="HandLine1Size" runat="server" AutoPostBack="true" Width="110px"> 
      <asp:ListItem Value="1">1.75</asp:ListItem> 
      <asp:ListItem Value="1.5625">2</asp:ListItem> 
      <asp:ListItem Value="2.25">2.5</asp:ListItem> 
      <asp:ListItem Value="3.0625">3</asp:ListItem> 
      <asp:ListItem Value="0">No handline</asp:ListItem> 
     </asp:DropDownList 
<asp:HiddenField ID="Line1Co" runat="server" /> 
<br /> 
    <%= Line1Co.Value %> 

Hier Hinter meinem Code ist:

Protected Sub Line1Co_ValueChanged(sender As Object, e As EventArgs) Handles Line1Co.ValueChanged 
    If HandLine1Size.SelectedValue = "1" Then Line1Co.Value = "12" Else 
    If HandLine1Size.SelectedValue = "1.5625" Then Line1Co.Value = "8" Else 
    If HandLine1Size.SelectedValue = "2.25" Then Line1Co.Value = "2" Else 
    If HandLine1Size.SelectedValue = "3.0625" Then Line1Co.Value = "0.75" Else 
    Line1Co.Value = "20" 
End Sub 

Antwort

0

Ich sehe zwei Probleme im Code:

  1. Sie sollten die SelectedIndexChanged von handhaben die DropDownList anstelle desEreignisses von HiddenField.

  2. Die einzeiligen if Aussagen sehen mich mit der Else am Ende falsch aus. Die letzte Zeile wird immer ausgeführt und der Wert wird in allen Fällen auf "20" gesetzt.


Hier sind ein paar Möglichkeiten, zu erreichen, was Sie wollen.

Mit einzeiligen if Aussagen:

Protected Sub HandLine1Size_SelectedIndexChanged(sender As Object, e As EventArgs) Handles HandLine1Size.SelectedIndexChanged 
    Line1Co.Value = "20" 
    If HandLine1Size.SelectedValue = "1" Then Line1Co.Value = "12" 
    If HandLine1Size.SelectedValue = "1.5625" Then Line1Co.Value = "8" 
    If HandLine1Size.SelectedValue = "2.25" Then Line1Co.Value = "2" 
    If HandLine1Size.SelectedValue = "3.0625" Then Line1Co.Value = "0.75" 
End Sub 

Mit einer mehrzeiligen if Aussage:

Protected Sub HandLine1Size_SelectedIndexChanged(sender As Object, e As EventArgs) Handles HandLine1Size.SelectedIndexChanged 
    If HandLine1Size.SelectedValue = "1" Then 
     Line1Co.Value = "12" 
    ElseIf HandLine1Size.SelectedValue = "1.5625" Then 
     Line1Co.Value = "8" 
    ElseIf HandLine1Size.SelectedValue = "2.25" Then 
     Line1Co.Value = "2" 
    ElseIf HandLine1Size.SelectedValue = "3.0625" Then 
     Line1Co.Value = "0.75" 
    Else 
     Line1Co.Value = "20" 
    End If 
End Sub 

Mit einer Select Aussage:

Protected Sub HandLine1Size_SelectedIndexChanged(sender As Object, e As EventArgs) Handles HandLine1Size.SelectedIndexChanged 
    Select Case HandLine1Size.SelectedValue 
     Case "1" 
      Line1Co.Value = "12" 
     Case "1.5625" 
      Line1Co.Value = "8" 
     Case "2.25" 
      Line1Co.Value = "2" 
     Case "3.0625" 
      Line1Co.Value = "0.75" 
     Case Else 
      Line1Co.Value = "20" 
    End Select 
End Sub