2009-04-09 12 views
8

¿Cómo debo agregar criterios adicionales de búsqueda/filtro a una aplicación web de datos dinámicos?Datos dinámicos de ASP.NET Agregar criterios de filtro adicionales a la página

Creé una aplicación web de datos dinámicos usando la base de datos de Northwind y estoy usando una página personalizada para la tabla de empleados (basada en la plantilla de página ListDetails.aspx). Me gustaría agregar parámetros adicionales de búsqueda/filtro/donde a la página. De forma predeterminada, la colección de parámetros where se crea dinámicamente en función del control FilterRepeater, que también se crea dinámicamente en función de las relaciones de "clave externa" que tiene la tabla Employee.

En un intento de agregar criterios de búsqueda adicionales, he vinculado el evento de selección de LinqDataSource de GridView y estoy tratando de agregar elementos adicionales a la colección WhereParameters de LinqDataSourceSelectEventArgs.

El problema es que no puedo especificar qué tipo de comparación se debe realizar. La colección WhereParameters solo acepta un String y un Object, pero no cómo compararlos. Lo que realmente me gustaría poder hacer es agregar a una colección de delegados de predicados ...

¿Cómo debo agregar criterios de búsqueda adicionales a esta página? A través de los atributos aplicados a la entidad LINQ To SQL (en caso afirmativo, ¿cómo?) ¿Qué pasa si el criterio/criterio no se basa en la entidad misma, cómo agregaría los criterios de búsqueda en ese caso?

Aaron Hoffman

+0

además de la respuesta a continuación, los foros DD, aunque lento para cargar, son acerca de la mejor fuente de información sobre DD existe en este momento, por desgracia – jlembke

Respuesta

7

Si desea añadir sus propios criterios para la aplicación que no se da automáticamente a usted por DD, que tendrá que ir a DynamicDataFiltering de hacer eso. DynamicData en sí no admite actualmente filtros personalizados y búsquedas. No es difícil de implementar. Josh Heyes hizo un gran trabajo en eso.

volver si eso no es exactamente lo que busca

EDIT: Además, si sólo la intención de hacer un poco de filtrado adicional de los datos visualizados se podría escribir algo como esto tal vez en el Page_Init sin Josh proyecto de filtrado:

GridDataSource.WhereParameters.Add(new Parameter("it.myColumn", TypeCode.Int32, myValue)); 

Haciendo "en" o "contiene" es un poco más complicado que eso, y requeriría DynamicDataFiltering.

+0

Intenté seguir las instrucciones de Josh sobre la conversión de LinqDataSource a DynamicLinqDataSource, pero nunca recibí una acción porque dijo "el origen de UpgradeData aparece en la ventana emergente de acción". ¿Encontraste que este era el caso? –

+0

Creo que lo hice. Sugiero preguntarle a Josh sobre Codeplex. – jlembke

+0

@jlembke, lo haré mientras tanto, ¿pudiste evitarlo? –

Cuestiones relacionadas