Привязка выпадающего списка данных с использованием другого класса?

#.net #asp.net #vb.net #drop-down-menu

#.net #asp.net #vb.net #выпадающее меню

Вопрос:

Привязка данных выпадающего списка с использованием общей функции throw. В этом есть проблема при передаче dropdownlist.

Ошибка: объекту не удается установить экземпляр object

Код приведен ниже

Код страницы 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
  

Комментарии:

1. В какой строке вы получаете исключение?

2. @rewinder: lobjGeneral.loadComboBox1(Я.ddlagent1, ldstOption. Таблицы (0), «Данные не найдены»)

3. в dataset есть данные, и перед запуском этой строки me.ddlagent1 как объект dropdownlist. После запуска этой строки она изменяется на нулевой объект, а также не вызывает функцию

4. Можете ли вы показать, где вы определяете переменную lobjGeneral?

5. Начало класса: затемнить lobjGeneral как новый clsGeneral

Ответ №1:

Ваш метод должен получить ссылку на Dropdownlist

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

Комментарии:

1. Вам нужно объявить вашу переменную dropdownlist в качестве ссылочного типа вместо типа значения.

2. вы имеете в виду, что та же функция работает при загрузке страницы, но не работает при изменении выпадающего списка?

3. вы изменили ByVal на ByRef ? По ссылке cbo в выпадающем списке?

4. @Muhammad: Все в порядке, я заканчиваю. В конце загрузки страницы я ничего не установил для объекта lobjGeneral. это проблема!!