选择案例和下拉框

时间:2016-09-26 23:10:07

标签: asp.net vb.net

我是ASP.Net的初学者,我目前在尝试理解使用下拉列表的机制时遇到了问题。

我的问题是我正在尝试使用Select Case表达式,我创建一个名为value的变量,该变量设置为等于我的下拉列表。通过查看我在互联网上找到的示例,我理解了如何设置语句的逻辑,我只是​​不理解如何将我的下拉框中的项分配给语句的value变量。这将是一个巨大的帮助,因为在Select Case语句中还有其他下拉列表,应根据第一个下拉框的用户选择为每个项目保存不同的常量值

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub CalculateButton_Click(sender As Object, e As EventArgs) Handles CalculateButton.Click
        Dim value As String = AirlineDropDown.SelectedValue
        Dim BagValue As String = NumBagsDropDown.SelectedValue
        Dim OvWBagValue As String = OverweightDropdown.SelectedValue
        Dim Total, Bagtotal, OvWBagTotal, DamagePro As Double
        DamagePro = 12.0

        Select Case value
            Case Airtran
                ' set Constant values to Bagvalues and OvWBagValues based on user selection  
        End Select

        Total = Bagtotal + OvWBagTotal + DamagePro
        TotalTextbox.Text = FormatNumber(Total, 2)
    End Sub

    Protected Sub ClearButton_Click(sender As Object, e As EventArgs) Handles ClearButton.Click
        TotalTextbox.Text = ""
    End Sub 
End Class

Image of my webpage

2 个答案:

答案 0 :(得分:0)

请在此处使用字符串

Select Case value
  Case value
            ' set Constant values to Bagvalues and OvWBagValues based on user selection  
End Select

答案 1 :(得分:0)

你走在正确的轨道上,你只需要将值与字符串进行比较。使用Airtran这个词本身永远不会真实,除非它是航空公司枚举的一部分。 Airtran的行李费也需要乘以用户选择的行李数,所以我在下面的示例中添加了(BagValue也必须转换为整数来执行乘法)。最后,在比较字符串时,我倾向于使我的字符串比较不区分大小写,所以我会像这样处理select-case:

'Converting the number of bags into an integer
Dim BagValue As Integer = CInt(NumBagsDropDown.SelectedValue)
Dim OvWBagValue As Integer = CInt(OverweightDropdown.SelectedValue)

Select Case True
    Case value.ToUpper.Equals("AIRTRAN")
        Bagtotal = 15 * BagValue          '15, or whatever airtran's bag fee is
        OvWBagTotal = 20 * OvWBagValue    'also made this number up
    'etc
End Select

此外,由于DamagePro是一个复选框,您只想添加12,如果选中它,目前您的代码将添加它,无论其检查状态如何。这看起来像是:

Total = Bagtotal + OvWBagTotal
If DamageProChkBox.Checked Then Total += DamagePro
TotalTextbox.Text = FormatNumber(Total, 2)

评论编辑:对于行李数量,您不需要选择案例声明,您应该能够从下拉列表中检索这些行李。例如,{Text =“1 Overweight Bag”,Value =“1”},{Text =“2 Overweight Bags”,Value =“2”}。由于正常行李和超重都有自己独立的下拉列表,因此您可以从每种类型的行李中获取每个行李的计数。下拉列表类似于预先构建的select-case语句,因为根据用户的选择,当您检索“SelectedValue”时,它们将为您提供不同的值,因此不需要使用更多的select-case语句来获取它们检索价值。在您的情况下,选择案例主要用于总计算;这意味着它允许您为不同的航空公司的行李费用获得不同的美元价值。