【问题标题】:How to declare a datasource in VB.NET?如何在 VB.NET 中声明数据源?
【发布时间】:2011-09-20 11:13:30
【问题描述】:

我在 VB.NET 中编写了一个 ASPX 文件。最初此文件运行成功,但在添加了一个附加参数后,它现在因“未声明名称 'peType'”而失败。

这个错误对我来说没有意义,因为我有类似的参数“dType”,它不会出错。这个错误的原因是什么?

这是我的一些 ASPX 代码文件:

    Sub Page_Load(Sender as Object, E as EventArgs)
        If Not IsPostback Then 

            Dim TheMonthDate As Date = DateAdd(DateInterval.Month, -1, Today)
            calStartDate.SelectedDate = CDate((TheMonthDate.Month) & "/1/" & Year(TheMonthDate)).ToString("MM/dd/yyyy")
            calEndDate.SelectedDate = GlobalFunctions.GlobalF.MonthLastDate(CDate((TheMonthDate.Month) & "/1/" & Year(TheMonthDate)).ToString("MM/dd/yyyy"))

            Dim arrType as New ArrayList()
            Dim arrOrgUnit as New ArrayList()
            Dim arrPEType as New ArrayList()
            Dim peType As ListBox

            arrType.Add("Product and Process")
            arrType.Add("Product")              
             arrType.Add("Process")                         
            dType.DataSource = arrType
            dType.DataBind()

            arrPEType.Add("-INC")
            arrPEType.Add("-NC")
            arrPEType.Add("-QC")
            peType.DataSource = arrPEType
            'peType.DataTextField = "DisplayColumnName"
            'peType.DataValueField = "ValueColumnName"
            peType.DataBind()
...
            Dim TheType as String
            Dim TheOrgUnit as String
            Dim PE_Type as String

            Select Case dType.SelectedValue
                Case "Product and Process": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PRODUCT_QXP' Or (SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PROCESS_QXP')"
                Case "Product": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PRODUCT_QXP')"
                Case "Process": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PROCESS_QXP')"
            End Select

            Select Case peType.SelectedValue
                Case "INC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='INC'"
                Case "NC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='NC'"
                Case "QC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='QC'"
            End Select
...
                    <td>
                        Product Exception Type:
                    </td>
                    <td>
                        <ASP:DROPDOWNLIST ID="peType" RUNAT="Server" AUTOPOSTBACK="true" />
                    </td>

但现在我的错误是: 对象引用未设置为对象的实例

【问题讨论】:

  • 呃。我讨厌唠叨你,但 ArrayLists 是邪恶的。看起来你想要一个 List(Of String) 代替。
  • 如果我们知道您的 .Net 版本对我们会有帮助。

标签: asp.net vb.net datasource


【解决方案1】:

当您尝试将DataSource 绑定到您的Dropdownlist 时,您错过了设置DataTextFieldDataValueField 属性,因此设置如下:

peType.DataSource = arrPEType
peType.DataTextField = "DisplayColumnName"
peType.DataValueField = "ValueColumnName"
peType.DataBind()

【讨论】:

  • 谢谢!解决了这个问题!
  • 谢谢。我试过这个,但我仍然收到以下代码的错误:
猜你喜欢
  • 2014-01-24
  • 2013-05-27
  • 2012-12-31
  • 2010-09-22
  • 2021-04-21
  • 1970-01-01
  • 2016-10-25
  • 2013-02-02
  • 1970-01-01
相关资源
最近更新 更多