2016-07-30 16 views
1

なぜユーザーがドロップダウンから別の選択肢を選択すると、Line1Co.Valueは常に0のままになりますか?ここで保護されたSub name.ValueChangedは更新されません

は私の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 %> 
ここ

は私のコードは、背後にある:

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 

答えて

0

私はあなたのコード内の2つの問題を参照してください。あなたがのSelectedIndexChangedを処理する必要があります

  1. をHiddenFieldのValueChangedイベントの代わりにDropDownListを使用します。

  2. 最後にElseという単一行のifが正しく表示されません。最後の行は常に実行され、値はすべて"20"に設定されます。ここで


あなたが望むものを達成するために、いくつかの方法があります。シングルライン if文で

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 

複数行if Withステートメント:

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 

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 

Select Withステートメント

関連する問題