Existe un requisito para cambiar el comportamiento de sap.ui.table dependiendo de no. de filas presentes en el backend que se vinculan a la tabla y se establece un valor de umbral. Así que si no. de filas es menor que el valor del umbral, luego cargue todos los datos de las filas y ordene/filtre en el navegador, es decir , OperationMode Client .
Pero si grande no. de filas presentes que excedan el valor del umbral, luego se cargan con $top/$skip y la clasificación/filtrado debe activar la llamada backend, es decir , OperationMode Server .
Según la documentación , OperationMode Auto debería haber funcionado, pero mantiene la clasificación/filtrado siempre en el lado del servidor, independientemente de las pocas filas presentes que son inferiores al valor de umbral y, por lo tanto, no funcionan únicamente como Client operationMode .
¿Existe una forma directa en el enlace de vista XML para cambiar el modo de operación a Cliente/Servidor según la condición de conteo o el modo de operación inyectado condicionalmente en
<Table id="myTable" threshold="200" visibleRowCount="10" minAutoRowCount="10" rowHeight="40" visibleRowCountMode="Interactive" rowSelectionChange="onTableChange" rows="{path: 'SampleEntitySet', parameters: {expand: 'Test123', operationMode : 'Server'}, events: {change: '.onTableChange'}}">Por favor, ayuda en la sugerencia de solución. Gracias
La pregunta apunta a OperationMode.Auto ( https://ui5.sap.com/1.102.1/#/api/sap.ui.model.odata.OperationMode ) que ya se había señalado en un comentario. Sin embargo, ese OperationMode no es completamente funcional (probablemente desde hace mucho tiempo) y está obsoleto a partir de SAPUI5 1.102.
Tiene sentido entender por qué quieres tener tal diferenciación en el comportamiento. OperationMode.Client se puede utilizar como una optimización en caso de que el volumen de datos sea pequeño. Esto optimizará principalmente la carga causada en el backend. Es posible que el usuario no se dé cuenta de la diferencia a menos que la red al backend sea mala. E incluso la carga para ordenar o filtrar en el servidor no es un problema real si el volumen de datos es pequeño. Entonces, la pregunta es si realmente hay otro problema oculto detrás de la pregunta y si tiene sentido trabajar en ese problema.
El "umbral" debe definirse como un parámetro vinculante , no como una propiedad de la tabla . p.ej
oTable.bindRows({ path : "/Categories", parameters: { operationMode : "Auto", countMode : "Inline", threshold: 9 } })Consulte el jsbin a continuación y configure la propiedad de umbral en menos de 8 para ver la solicitud por lotes para la clasificación de la columna CategoryName (modo de servidor) o configúrelo en más de 8 para ver el modo de cliente en acción. https://jsbin.com/wutiyudoru/1/edit?html,salida