Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать динамическую сортировку в DataGrid? / 11 сообщений из 11, страница 1 из 1
11.06.2004, 10:28
    #32557570
dencat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Вопрос в следующем, есть DataGrid, есть TextBox, нужно чтобы при вводе слова в TextBox, динамически сортировались записи в DataGrid по определенному столбцу.
Ну например ввел А, в DataGrid остались все записи , в которых в заданном поле строка начинается на А.
Вел дальше З,в DataGrid остались все записи , в которых в заданном поле строка начинается на Аз.
Ну и т.д. до выбора одной записи полность удволетворяющей запросу, или вывода сообщения что таких данных нет.

Зарание спасибо за совет.
...
Рейтинг: 0 / 0
11.06.2004, 10:55
    #32557645
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
А нужен сам код процедуры или идея?
Если идея, то на textbox keypress можно повесить запрос из БД и заполнение dataset
А, если код - надо думать... :))
...
Рейтинг: 0 / 0
11.06.2004, 11:05
    #32557679
dencat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
А есть у TextBox событие TextChanged? Лучше на него тогда.
Да луч ше бы код, идею то я понимаю:)
...
Рейтинг: 0 / 0
11.06.2004, 11:23
    #32557736
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
dencatВопрос в следующем, есть DataGrid, есть TextBox, нужно чтобы при вводе слова в TextBox, динамически сортировались записи в DataGrid по определенному столбцу.
Ну например ввел А, в DataGrid остались все записи , в которых в заданном поле строка начинается на А.
Вел дальше З,в DataGrid остались все записи , в которых в заданном поле строка начинается на Аз.
Ну и т.д. до выбора одной записи полность удволетворяющей запросу, или вывода сообщения что таких данных нет.


"Весим" на TextChanged:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
If Me.dataGrid1.DataSource Is Nothing Then
    Exit Sub
End If
Dim crm As CurrencyManager = CType(Me.BindingContext(Me.dataGrid1.DataSource, Me.dataGrid1.DataMember), CurrencyManager) ' где dataGrid1 - ваш грид
Dim dv As DataView = CType(crm.List, DataView)
Dim column As String = "columnName" ' название "определенного столбца"
Dim text = Me.TextBox1.Text ' ваш textbox
Dim filter As String = String.Format("{0} LIKE '%{ 1 }%'", column, text)
dv.RowFilter = filter
If dv.Count = 0 Then
    MsgBox("no records")
End If


Код: plaintext
 user id  =  S a
...
Рейтинг: 0 / 0
11.06.2004, 11:27
    #32557748
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Да я в примере специально сделал по любому вхождению набираемой строки:

Если надо чтобы "начинается на..." то меняем
Код: plaintext
1.
Dim filter As String = String.Format("{0} LIKE '%{1}%'", column, text)

на
Код: plaintext
1.
Dim filter As String = String.Format("{0} LIKE '{1}%'", column, text)


Код: plaintext
 user id  =  S a
...
Рейтинг: 0 / 0
11.06.2004, 11:33
    #32557764
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Код: plaintext
1.
"Весим" на TextChanged:
(типо, незнаешь не ЛЕЗЬ)
КАК ВСЕГДА - БОЖЕСТВЕННО...
...
Рейтинг: 0 / 0
11.06.2004, 13:03
    #32558025
dencat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Спасибо сейчас попробую.
...
Рейтинг: 0 / 0
11.06.2004, 15:01
    #32558313
dencat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Спасибо,заработало так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFltr.TextChanged

        Dim crm As CurrencyManager
        Dim column As String
        Dim dv As DataView
        Dim text As String
        Dim filter As String


        If dgForm1.DataSource Is Nothing Then
            Exit Sub
        End If

        crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

        dv = CType(crm.List, DataView)
        column = "Name"
        text = Me.txtFltr.Text
        filter = String.Format("{0} LIKE '{1}%'", column, text)
        dv.RowFilter = filter
        If dv.Count =  0  Then
            MessageBox.Show("no records")
        End If

    End Sub

а какая разница между записями
Код: plaintext
1.
crm = CType(Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember), CurrencyManager)
и
Код: plaintext
1.
crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

Работает и в том и в другом случае.
...
Рейтинг: 0 / 0
11.06.2004, 21:00
    #32559000
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
dencat
а какая разница между записями

Код: plaintext
1.
crm = CType(Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember), CurrencyManager)

и

Код: plaintext
1.
crm = Me.BindingContext(Me.dgForm1.DataSource, Me.dgForm1.DataMember)

Работает и в том и в другом случае.


Если поставить Option Strict On (в коммерческих проектах я всегда ставлю On) , то так второй вариант не пройдет и придется делать CType.

Я стараюсь всегда по возможности явно преобразовывать объекты, но в тестовых примерах могу иногда что то упустить, а в C# второй вариант вообще не пройдет. Так что у басистов есть ИМХО сомнительное преимущество (Option Strict Off)
...
Рейтинг: 0 / 0
11.06.2004, 22:49
    #32559066
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
ссылка
это на случай, если количество строк в DataGride вдруг случайно перевалит за максимальнодопустимое
...
Рейтинг: 0 / 0
17.06.2004, 12:16
    #32565087
dencat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать динамическую сортировку в DataGrid?
Ага, спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать динамическую сортировку в DataGrid? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]