Bonjour,
J'ai développé un UserControl qui utilise un gridview permettant d'effectuer une recherche sur des informations au sein de celui-ci.
Pour cela j'utilise un datatable auquel je mets a jour la propriété RowFilter du DefaultView et ce avant d'effectuer un databinding.
Malheureusement cela ne marche pas des que remplie le RowFilter ma grille reste désespérément vide.
J'ai essayé plusieurs expressions ({0} LIKE '%{1}% ou {0} LIKE '*{1}*), malheureusement sans résultats.

Quelqu'un pourrait il m'aider merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
    public override void DataBind()
    {
        string FilterExpression = BuildFilterExpression(tbFiltre.Text);
 
        if (!string.IsNullOrEmpty(FilterExpression))
        {
            DataTable m_DataTable = DataSource as DataTable;
            m_DataTable.CaseSensitive = false;
 
            if (m_DataTable != null)
                m_DataTable.DefaultView.RowFilter = FilterExpression;
        }
        else
        {
            DataTable m_DataTable = DataSource as DataTable;
            if (m_DataTable != null)
                m_DataTable.DefaultView.RowFilter = string.Empty;
            gvMain.DataSource = DataSource;
        }
 
 
        gvMain.DataBind();
    }
 
    private string BuildFilterExpression(string filterText)
    {
        string result = string.Empty;
 
        if ((rbAucun.Checked) || string.IsNullOrEmpty(filterText))
            return result;
 
        if (rbCode.Checked)
            result = string.Format("{0} LIKE '*{1}*'", CodeColumn, filterText);
 
        if (rbIntitule.Checked)
            result = string.Format("{0} LIKE '*{1}*'", IntituleColumn, filterText);
 
        return result;
    }