Ola pessoal seguindo este artigo do Ramon .. http://www.imasters.com.br/artigo/4178/aspnet/paginando_dados_com_sqlserver_20002005/
onde tenho dados paginados, assim eu retorno pra minha pagina apenas os dados de 10 em 10, até funcionou, mais tenho o seguinte problema..
SP..
ALTER PROCEDURE [dbo].[usp_BuscaTecnicoAtivoInativo]
(
@startRowIndex int,
@maximumRows int,
@Ativo as bit,
@rowsCount int output
)
AS
Begin
SET @startRowIndex = @startRowIndex +1
set @rowsCount=(SELECT count(idusuario) FROM Usuario_Geral);
WITH paginacaoUsuario AS
(
SELECT idusuario,nome,usuario,Convert(varchar(10),datacadastro,103) as dt,
tipo,ramal,ativo,
ROW_NUMBER() OVER (order by idusuario)as RowNumber
FROM Usuario_Geral
)
SELECT idusuario, nome, usuario,dt,
ramal,ativo
FROM paginacaoUsuario
WHERE RowNumber between @startRowIndex and @startRowIndex+@maximumRows
and ativo = 0
and tipo = 2 order by idusuario
End
deu pra ver ai que eu quero os registros que o campo ativo =0 e tipo = 2 , o que acontece é o seguinte..
tenho 30 usuarios.. e quero paginar os dados de 10 em 10.. entao os meus primeiros 10 usuarios eu só tenho 1 usuario com ativo = 0 e tipo = 2, depois do 16 º registro eu tenho outro usuario com as mesmas caracteristicas, ai na minha consulta ele me retorna os primeiros 10 e um registro apenas no grid, ai na segunda pagina me retorna mais 1 registro, e assim em diante.. se eu colocar ele pra paginar de 30 em 30 , claro que ele pega tudo. mais quero de 10 em 10, e nesses 10 mostre todos os usuarios que estejam ativo 0 e tipo = 2, ja tentei mudar essa linha
set @rowsCount=(SELECT count(idusuario) FROM Usuario_Geral) where tipo = 2;
ai ele me retorna no total 8 registros.. retorna certo, portanto entao se eu exibir de 10 em 10 estes 8 registros parece dar certo, mais nao consigo.. alguem sabe como mudar isso???
grato...
RESUMINDO >> SE ENTRE OS 10 PRIMEIROS REGISTROS NAO TIVER ALGUM REGISTRO QUE SATISFAÇA MINHA CONDIÇÃO SIMPLESMENTE ELE NAO MOSTRA A PAGINAÇÃO.. AI ME FERRA...