2010-09-15 8 views
1

J'ai un problème avec Telerik RadGrid. Lorsque j'applique un filtre sur une colonne de données, j'utilise l'expression de filtre en tant qu'expression Linq. Donc (côté serveur) je l'analyse avec Dynamic Linq (à partir des exemples MIcrosoft LINQ) dans le gestionnaire NeedDataSource. Le problème est que lorsque je précise « Démarrer avec » comme un filtre, je reçois ce qui suit comme « l'expression Linq »:Problème avec les filtres LINQ dans Telerik RadGrid

(iif(Name == null, "", Name).ToString().StartsWith("A")) 

Qu'est-ce que « ssi » ???? Qu'est-ce qui correspond à "iif" ???? L'utilisation est évidente: la gestion des zéros ....

L'étrange est que lorsque j'applique le filtre sur une grille qui charge des données à partir de services Web et non à partir du rappel côté serveur, tout fonctionne et ce problème ne soulève pas . Deux façons, deux fonctions d'analyse, pas seulement une commune.

Une idée? Merci à l'avance

+0

Bien que vous soyez un membre de StackOverflow depuis un moment, permettez-moi de rappeler trois choses que nous faisons habituellement ici: 1) Comme vous recevez de l'aide, essayez de le donner aussi ** répondre à des questions ** dans votre domaine d'expertise 2) ['Lisez la FAQs] (http://tinyurl.com/2vycnvr) 3) Quand vous voyez de bonnes questions-réponses, votez-les en utilisant les triangles gris (http://i.imgur.com) /kygEP.png), car la crédibilité du système repose sur la réputation que les utilisateurs acquièrent en partageant leurs connaissances. Rappelez-vous également d'accepter la réponse qui résout le mieux votre problème, le cas échéant, ['en appuyant sur le signe checkmark] (http://i.imgur.com/uqJeW.png) –

Répondre

0

Dans dynamique LINQ iif(x,y,z) est une autre syntaxe pour la ternaire si x ? y : z, le même nom était used in VB for some time ("Immediate IF")

Dans ce cas, il ressemble à un null-coalescing operator ??, mais il semble que dynamique LINQ ne supporte pas que

(Name ?? string.Empty).ToString().StartsWith("A") 

Peut-être essayer de substituer le iif avec la notation ternaire? Pouvez-vous clarifier quelle est l'erreur exacte qui se produit?

+0

Oui, mais le problème est que RadGrid spécifie iif , pas moi! C'est le problème! –

+0

@Marco: quel est le problème avec ce "iif"? Il devrait être facilement analysé par Dynamic LINQ ... pourquoi voulez-vous vous en débarrasser? –

+0

Le code DynamicLinq (à partir d'exemples Microsoft - http://msdn.microsoft.com/en-us/vcsharp/bb894665.aspx) n'analyse pas iif. C'est le problème. –