Как я могу отфильтровать отфильтрованные данные в DataGridView - PullRequest
0 голосов
/ 21 ноября 2019

У меня проблема с фильтрацией данных в представлении таблицы данных. Мой код работает, если я использую 1 фильтр поиска, но если я использую 2 фильтра поиска, это не так, сначала мне нужно отфильтровать его по судам, а затем поместо проведения или местоположение

Пожалуйста, дайте мне любую идею о том, как я могу заставить этот код работать, спасибо

Мой код:

Private Sub Searchbtn_Click(sender As Object, e As EventArgs) Handles Searchbtn.Click

    'Search Code

        If Me.Court_AgencyComboBox.Text = "" Then
            MessageBox.Show("No Item to be Search", "IBP Legal Aid Case Management System - Legal Aid Case File - Search", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End If

        If Not String.IsNullOrEmpty(Me.Court_AgencyComboBox.Text) Then
            Me.TblLegalAidCaseFileBindingSource.Filter = String.Format("[Court/Agency] like '%{0}%'", Me.Court_AgencyComboBox.Text)
        ElseIf Not String.IsNullOrEmpty(Me.Court_AgencyComboBox.Text) And Not String.IsNullOrEmpty(Me.VenueComboBox.Text) Then
            Me.TblLegalAidCaseFileBindingSource.Filter = String.Format("[Court/Agency] like '%{0}%' and Venue like '%{0}%'", Me.Court_AgencyComboBox.Text, Me.VenueComboBox.Text)
        Else
            RefreshData()
            Return
        End If

End Sub

1 Ответ

0 голосов
/ 21 ноября 2019

Способ работы операторов if-else заключается в том, что он выполнит первый, соответствующий условию. В вашем случае с 1 фильтром он выполнит это условие If Not String.IsNullOrEmpty(Me.Court_AgencyComboBox.Text) и, таким образом, выполнит эту строку. Однако в случае с двумя фильтрами он проверит первое условие If Not String.IsNullOrEmpty(Me.Court_AgencyComboBox.Text) и выполнит эту строку, так как условие фактически выполнено.

Простой способ решить вашу проблему напрямую - это поменять местами условия,Начиная с условия, которое труднее всего выполнить. Который будет выглядеть так (я вложил ваши условия, чтобы сделать его чище):

(Code before...)
If Not String.IsNullOrEmpty(Me.Court_AgencyComboBox.Text) Then
    If Not String.IsNullOrEmpty(Me.VenueComboBox.Text) Then
        Me.TblLegalAidCaseFileBindingSource.Filter = String.Format("[Court/Agency] like '%{0}%' and Venue like '%{1}%'", Me.Court_AgencyComboBox.Text, Me.VenueComboBox.Text)
    Else
        Me.TblLegalAidCaseFileBindingSource.Filter = String.Format("[Court/Agency] like '%{0}%'", Me.Court_AgencyComboBox.Text)
Else (Code after...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...