Principales respuestas
EntityDataSource - Al paginar - Desaparece Where.

Pregunta
-
Hola:
Asigno mediante código al control EntityDataSource la propiedad "Where" y "WhereParameters"
if (ClientesDropDownList.SelectedIndex > 0) { ControlParameter cp = new ControlParameter(); cp.ControlID = "ClientesDropDownList"; cp.DbType = System.Data.DbType.Int32; cp.Name = "NumCliente"; cp.PropertyName = "SelectedValue"; FacturasEntityDataSource.WhereParameters.Add(cp); if (ponedAnd) { cadenaWhere = cadenaWhere + " && it.[NumCliente]==@NumCliente "; } else { cadenaWhere = "it.[NumCliente]==@NumCliente "; } ponedAnd = true; } FacturasEntityDataSource.Where = cadenaWhere;
Y cuando doy a paginar me sale el error :
WhereParameters no se puede especificar a menos que AutoGenerateWhere==true o se especifique Where.
Lo que no entinedo es como desaparece el contenido del "Where" y no desaparece el de "WhereParameters".
Un Saludo.
Respuestas
-
el tema es que estas en un ambiente web, cuando paginas se realiza un post al servidor y si defines un parametro de forma dinamica seguramente se pierda
deberias ver de definir el parametro sobre e campo NumCliente de forma fija en el control en el html, asi no se pierde entre postback
definiendo el controlparameter
Filtrar datos (EntityDataSource)
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Karen MalagónModerator martes, 9 de junio de 2015 18:02
- Marcado como respuesta Karen MalagónModerator miércoles, 10 de junio de 2015 16:16
Todas las respuestas
-
hola
valida que defines la propiedad
EntityDataSource.AutoGenerateWhereClause (Propiedad)
en true
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola:
Creo que el autogeneratewhereclause es incompatible con el where. Por lo que cuando se le asigna valor a where la clausulaautogenerate tiene que estar a false, que es como la tengo yo. Ya que se pone a true, cuando no especificamos valor a la propiedad Where.
Un Saludo.
-
hola
la pregunta seria porque usas el control EntityDataSource cuando quieres definir una query dinamica
porque simplemente no instancias el contecto de EF ene el codigo y defines el linq
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Uso este control por comodidad y facilidad, y no se si tendrá que ver también en el proceso de paginación del gridview o solamente aporta los datos.
Por lo que si no influye el uso de este control en ningún otro comportamiento del gridview, probaré ha asignarlo sin él.
Un Saludo.
-
el tema es que estas en un ambiente web, cuando paginas se realiza un post al servidor y si defines un parametro de forma dinamica seguramente se pierda
deberias ver de definir el parametro sobre e campo NumCliente de forma fija en el control en el html, asi no se pierde entre postback
definiendo el controlparameter
Filtrar datos (EntityDataSource)
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Karen MalagónModerator martes, 9 de junio de 2015 18:02
- Marcado como respuesta Karen MalagónModerator miércoles, 10 de junio de 2015 16:16