【问题标题】:VB asp.net set result of a control to a variableVB asp.net将控件的结果设置为变量
【发布时间】:2011-05-08 22:09:08
【问题描述】:

试图将下拉列表的结果设置为变量但遇到了很大的麻烦。

    Sub OutageSource(ByVal sender As Object, ByVal e As EventArgs) Handles Year.SelectedIndexChanged
    Dim year As Integer


    year = year.SelectedValue

    MsgBox(year)

    End Sub

     <asp:DropDownList ID="Year" runat="server" onChange = "" Width="70px">
                    <asp:ListItem Value=1988>1988</asp:ListItem><asp:ListItem Value=1987>1987</asp:ListItem>
                </asp:DropDownList>

所以我试图让 vb 部分中的年份变量等于页面中选定的年份。 我习惯了 VBA,所以也许我缺少一些东西?

干杯

【问题讨论】:

  • 它说“SelectedValue”不是“Integer”的成员。

标签: asp.net vb.net drop-down-menu


【解决方案1】:

我刚刚将您的代码复制到 VS2008 演示中,似乎 VB.NET 的大小写(去)敏感性是问题所在(至少在我的情况下 - 没有双关语的意思)。 VB.NET 没有发现 year 变量和 Year 变量之间的区别,并且假定前者是因为您在 Sub 本地声明了它。

尝试调用局部变量intYear,看看会发生什么

【讨论】:

    【解决方案2】:

    您的 year 变量与控件同名。
    您可以更改名称或写Me.Year 来引用控件。

    【讨论】:

    • 我尝试了 me.year,它给了我以下信息,属性访问必须分配给属性或使用它的值。
    • 更改 var 名称后,我不断收到 System.ArgumentException:参数“提示”无法转换为“字符串”类型。无论如何要将控件设置为字符串或整数类型?
    • 您不能在服务器上调用MsgBox(尽管这不是错误所在)。您需要使用 Javascript。
    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 2013-09-27
    • 1970-01-01
    • 2019-07-09
    • 2022-11-10
    • 1970-01-01
    • 2015-02-28
    • 2023-04-06
    相关资源
    最近更新 更多