Telerik Radgrid, просачиваться, не имея акцента в виду

У меня есть Радгрид де Телерик, в котором я хочу заставить поиски (просачиваться), и что не имел в виду акцент, а именно, если мне нужно как данные "Грузовик" и "Грузовик", что, написать в фильтре "Грузовике", у меня появились два результата и наоборот. Есть какое-то свойство, уже включенное в сам контроль, который позволяет делать это?.

Спасибо.

0
задан 28.09.2016, 13:49
2 ответа

Не существует что-то родное из контроля, но программируя в событиях было возможно, что ты решаешь твою проблему. Это шаги:

  1. В событии radgrid NeedDataSource, удаляют акцент со следующим mГ©todo и создается слепая копия без акцента:

    public static string RemoveDiacritics(string s)  
    {  
        string normalizedString = s.Normalize(NormalizationForm.FormD);  
        StringBuilder stringBuilder = new StringBuilder();  
    
        for (int i = 0; i < normalizedString.Length; i++)  
        {  
            char c = normalizedString[i];  
            if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)  
            {  
                stringBuilder.Append(c);  
            }  
        }  
        return stringBuilder.ToString();  
    }
    
  2. В событии itemCommand из radgrid, проверяется, если у колонны есть акцент, например [RaisonSociale], если он asГ, - берется скрытая колонна, у которой нет акцента [RaisonSocialeFiltre]:

    protected void RadGridClients_ItemCommand(object source, GridCommandEventArgs e)  
    {  
        if (e.CommandName == RadGrid.FilterCommandName)  
        {  
            Pair laPaire = (Pair)e.CommandArgument;  
            if (string.Compare((string)laPaire.Second, "RaisonSociale") == 0)  
            {  
                e.Canceled = true;  
    
                TextBox txtBox = (TextBox)((GridFilteringItem)e.Item)["RaisonSociale"].Controls[0];  
                FiltreOriginalClient = txtBox.Text;  
    
                GridColumn colonneCachee = ((RadGrid)source).MasterTableView.GetColumnSafe("RaisonSocialeFiltre");  
                colonneCachee.CurrentFilterFunction = (GridKnownFunction)(Enum.Parse(typeof(GridKnownFunction), Convert.ToString(laPaire.First, CultureInfo.InvariantCulture), true));  
                colonneCachee.CurrentFilterValue = Utilitaire.RemoveDiacritics(txtBox.Text);  
                ((RadGrid)source).Rebind();  
    
                GridFilteringItem filterItem = ((RadGrid)source).MasterTableView.GetItems(GridItemType.FilteringItem)[0] as GridFilteringItem;  
                filterItem.FireCommandEvent("Filter", new Pair((string)laPaire.First, "RaisonSocialeFiltre"));  
            }  
        }  
    } 
    
  3. В конце концов, в событии ItemDataBound, возвращает себе фильтр в Ваше первоначальное состояние, в этой случай использует переменную global названные FiltreOriginalClient:

        protected void RadGridClients_ItemDataBound(object sender, GridItemEventArgs e)  
    {  
        // Utilisé pour remettre le filtre dans le textbox filtre en haut de la colonne RaisonSociale  
        if (e.Item.ItemType == GridItemType.FilteringItem)  
        {  
            if (!string.IsNullOrEmpty(((TextBox)((GridFilteringItem)e.Item)["RaisonSocialeFiltre"].Controls[0]).Text) && !string.IsNullOrEmpty(FiltreOriginalClient))  
            {  
                ((TextBox)((GridFilteringItem)e.Item)["RaisonSociale"].Controls[0]).Text = FiltreOriginalClient;  
            }  
        }  
    } 
    

Надеялся, что это помогает тебе.

Снабжает ссылками: ACCENT INSENSITIVE FILTERING - Filtering on в different column

1
ответ дан 24.11.2019, 13:16
  • 1
    Привет EAFC и желанный в SO в espa и # 241; ol. Я рекомендую тебе читать себе , пробежавший из сайта и видеть и # 225; s, что для того, чтобы ответ был v и # 225; lida в сайте важно извлекать informaci и # 243; n важно с соединений до твоего ответа. Подумай, что соединения могут позволять функционировать и объявлять это недействительным и # 237; в ответ:). Приветствие! –  Miquel Coll 11.10.2016, 20:58
  • 2
    Привет. Большое спасибо из-за того, что отвечает. S и # 237; в конце концов решение и # 233; схвати и # 237; encontr и # 233; та же ссылка, которую ты помещаешь (ACCENT INSENSITIVE FILTERING). Случай состоит в том, что он искал какой-то способ, м и # 225; s прямая делания этого, так как с aplicaci и # 243; n, которого работы считает 100 grids и у каждого grid может быть между 2 и 4 колонны с этой проблемой. Но это лучший soluci и # 243; n, который я нашел. –  Isa 13.10.2016, 10:55

правда в том, что не существует никакое свойство, которое бы это делало в framework, это самое большее это будешь должен делать это ручным способом ты. Уже будьте remplazando гласные каждой консультации перед тем, как реализовывать консультацию. Привет

0
ответ дан 24.11.2019, 13:16
  • 1
    S и # 237; это я боюсь. Спасибо за ответ. –  Isa 30.09.2016, 10:08

Теги

Похожие вопросы