J'ai essayé le filtrage côté serveur en utilisant une grille angulaire de 2 kendo avec odata v4 mais en montrant que le mot clé 'contains' ne supporte pas. nouvelle version en utilisant « substringof » au lieu de « contient » comment puis-je résoudre ce problèmeAngulaire 2 Grille de Kendo ne supportant pas odata v4
3
A
Répondre
0
V4 et OData Installer configurer WebApiConfig.cs
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var customer = builder.EntitySet<CustomerModel>("CustomerSearch");
config.Routes.MapODataServiceRoute(
routeName: "odata",
routePrefix: "odata",
model: builder.GetEdmModel());
« CustomerModel » est mon modèle pour revenir nom du contrôleur « CustomerSearch »
OData contrôleur
[EnableQuery]
public class CustomerSearchController : ODataController
{
[EnableQuery]
public IQueryable<CustomerModel> Get()
{
CustomerModelResponse list = new CustomerModelResponse();
try
{
list = CustomerBL.GetCustomer(0);
}
catch (Exception)
{
throw;
}
return list.CustomerList.AsQueryable();
}
}
0
Nous utilisons OData v3.
Ce que je l'ai fait est que je regex le queryString si elle a un contient(), puis le remplacer par substringof()
est un exemple:
let queryString = toODataString(state);
const regex = /(contains(([^)]+)\)))/;
queryString = _.replace(queryString, regex, `substringof('${filter.value}', ${filter.field})`);
J'utilise lodash ici, mais je devrais aussi travailler avec la fonction de string.replace
Avez-vous trouvé une solution à ce sujet? Je suis confronté au même problème ... – Andrew
Oui en fait, j'utilisais une mauvaise version, pas V4 et je vérifiais aussi le Web ApiConfig –