【问题标题】:Dropdownlist databind using another class?使用另一个类的下拉列表数据绑定?
【发布时间】:2011-05-17 08:38:10
【问题描述】:

使用 throw 通用函数绑定 Dropdownlist 数据。在此有传递下拉列表的问题。

错误:无法将对象设置为对象的实例

代码如下

Aspx 页面代码:

<asp:DropDownList ID="ddlagent1" CssClass="ParameterTextBox" runat="server" AutoPostBack="false"></asp:DropDownList>

Protected Sub chkcity_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkcity.CheckedChanged
 ldstOption = //fill values here
 lobjGeneral.loadComboBox1(Me.ddlagent1, ldstOption.Tables(0), "No Data found")
End Sub

普通类:

Public Sub loadComboBox1(ByVal cbo As DropDownList, ByVal dset As DataTable, ByVal msgstr As String, _
                Optional ByVal visible As Boolean = True, _
                Optional ByVal enabled As Boolean = True, _
                Optional ByVal tno As Integer = 0, _
                Optional ByVal dmem As Integer = 2, _
                Optional ByVal vmem As Integer = 1)

        Try
            If (dset.Rows.Count > 0) Then
                cbo.DataSource = dset
                cbo.DataTextField = dset.Columns(dmem).Caption
                cbo.DataValueField = dset.Columns(vmem).Caption
                cbo.DataBind()
                cbo.SelectedIndex = 0
                cbo.Visible = visible
                cbo.Enabled = enabled
            Else
                dset = Nothing
                cbo.Text = msgstr
            End If
        Catch ex As Exception
            'Call CreateErrorLogFile("General", "loadComboBox", Err.Description)
        End Try
    End Sub

【问题讨论】:

  • 您在哪一行得到异常?
  • @rewinder: lobjGeneral.loadComboBox1(Me.ddlagent1, ldstOption.Tables(0), "未找到数据")
  • 数据集有数据,在运行此行之前 me.ddlagent1 作为下拉列表对象。运行该行后,它更改为 null 对象,也没有调用函数
  • 你能说明你在哪里定义 lobjGeneral 变量吗?
  • 一流的:Dim lobjGeneral As New clsGeneral

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


【解决方案1】:

你的方法应该有下拉列表参考

Public Sub loadComboBox1(ByRef cbo As DropDownList, ......

【讨论】:

  • 您需要将下拉列表变量声明为引用类型而不是值类型。
  • 你的意思是相同的功能在页面加载中起作用,但在下拉选择中不起作用?
  • 您是否将 ByVal 更改为 ByRef ? ByRef cbo As DropDownList?
  • @Muhammad:好的,我完成了。在页面加载结束时,我没有为 lobjGeneral 对象设置任何内容。那是问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-18
  • 2018-10-19
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
相关资源
最近更新 更多