Paginar datalist com databinder no aspx

Delphi

18/05/2005

No DataGrid coloquei a coluna nome como template e no editor de template coloquei um hyperlink, na página ASPX coloquei esta linha:

navigateurl=´<¬# ´pagina.aspx?Nome=´ + DataBinder.Eval(Container, ´DataItem.Nome´) ¬>´><¬ DataBinder.Eval(Container, ´DataItem.Nome´) ¬>

Consegui apresentar os dados normalmente e o link tb funciona, porém perdi a paginação da página, a barra de paginação até aparece, mas quando clico nela, página 2 por exemplo os dados apresentados são sempre da página 1.

no PageIndexChanged tenho este código:

DataGrid1.CurrentPageIndex := e.NewPageIndex;
DataGrid1.DataBind;

no load da página este:

if not IsPostBack then
DataGrid1.DataBind;

Antes paginava normalmente, depois que coloquei o item de coluna nome como template parou de paginar, o que pode ter acontecido?


Sanses


Sanses

Sanses

Curtidas 0

Respostas

Mjr

Mjr

18/05/2005

Sanses,

Por favor, se você conseguiu fazer a paginação me informe como, pois estou com o mesmo problema. :lol:

Grato pela Ajuda.

mjr.


GOSTEI 0
Sanses

Sanses

18/05/2005

Olá

Qual tipo de acesso vc esta usando bdp ou sql ?


Sanses


GOSTEI 0
Mjr

Mjr

18/05/2005

Sanses,

Uso Bdp. :wink:

Grato.

mjr.


GOSTEI 0
Sanses

Sanses

18/05/2005

Olá

Usando o Bdp, utilize o dbwebgrid mesmo, entre nas propriedades do mesmo, transforme todas as colunas em template que voce terá o mesmo efeito do datagrid, sem aquelas caixas de edição (textbox) do dbwebgrid.

Sanses


GOSTEI 0
Mjr

Mjr

18/05/2005

Sanses,

eu já tinha feito com o DbWebgrid, a paginação ficou beleza, aí eu carregava outra página aspx e mostrava os dados de um produto pelo id que eu mandava na url, mas o problema é que quando eu estava na primeira página do Grid, mostrava normalmente a descrição, que é um campo blob, mas se eu estiver na segunda ou outra página do grid, e chamar a url com o id do produto, eu conseguia vizualizar a foto, o preço e outros dados mas a descrição não aparecia. Por isso passei pro DataGrid, mas com ele não dá pra fazer nem a paginação. Se você souber como me ajudar com o DBWebGrid a mostrar a descrição dos produtos, serei grato pela ajuda. :lol:

Até mais.

mjr.


GOSTEI 0
Sanses

Sanses

18/05/2005

Olá

Se puder cole aqui o código que voce usa na página que recebe a id, que acredito que esteja no evento load da página, assim talvez eu saiba como ajudar você.


Sanses


GOSTEI 0
Mjr

Mjr

18/05/2005

Sanses,

eis o código:
Aqui faço um Random na Tabela pra escolher um produto e mostrar na tela ( faço isso em todas as páginas ).
[color=green:cabfc94c9c]
AdpProdutos2.Active := false;
AdpProdutos2.SelectCommand.CommandText := ´SELECT Id_Produto FROM Produtos´;
AdpProdutos2.Active:= true;
ok := false;
try
try
p := 1 + dsprodutos2.Tables[´Produtos´].rows.count;
i := random(p);
if i = 0 then
i := i + 1;
if i = p then
i := i - 1;
if i < 0 then
i := DsProdutos.Tables[´Produtos´].Rows.Count;
AdpProdutos2.Active := false;
AdpProdutos2.SelectCommand.CommandText := ´Select produto, localImagem, preco, id_produto from produtos where id_produto = ´ + i.ToString;
AdpProdutos2.Active := true;
LbProduto.Text := DsProdutos2.Tables[´Produtos´].Rows[0][´Produto´].ToString;
LbPreco.Text := DsProdutos2.Tables[´Produtos´].Rows[0][´Preco´].ToString;
image7.ImageUrl := DsProdutos2.Tables[´Produtos´].Rows[0][´LocalImagem´].ToString;
ok := LbProduto.Text <> ´´;
AdpProdutos.Active := false;
except
end;
finally

end;
if not ok then begin
LbProduto.Visible := false;
LbPreco.Visible := false;
Image7.Visible := false;
PnPromocao.Visible := true;
end;
[/color:cabfc94c9c]

Aqui é que pego o produto.
[color=red:cabfc94c9c]
AdpProdutos2.Active := false;
AdpProdutos2.SelectCommand.CommandText := ´SELECT * FROM Produtos where Id_Produto = ´ + Request.QueryString[´Id´].ToString;
AdpProdutos2.Active := true;
lbprod.DataBind;
lbprco.DataBind;
img.DataBind;
lbGarantia.DataBind;
lbdispon.DataBind;
end;
[/color:cabfc94c9c]

P.S.: Esses códigos estão juntos no Load da página.

Se você não entender direito, é só perguntar.

Grato desde já.

mjr.


GOSTEI 0
Mjr

Mjr

18/05/2005

Sanses,

Esqueci de dizer: a descrição está em um DBWebMemo, então não preciso fazer o databind, preciso? por que o DbWebDataSet tem o AutoRefresh = true. Quanto ao primeiro código que pega um produto por Random (em verde), tá funcionando beleza, o problema é onde pego o produto da querystring (vermelho).

Grato.

mjr.


GOSTEI 0
Sanses

Sanses

18/05/2005

Olá

Pela lógica está correto. mas tente substituir o código:
AdpProdutos2.Active := false; 
AdpProdutos2.SelectCommand.CommandText := ´SELECT * FROM Produtos where Id_Produto = ´ + Request.QueryString[´Id´].ToString; 
AdpProdutos2.Active := true; 
lbprod.DataBind; 
lbprco.DataBind; 
img.DataBind; 
lbGarantia.DataBind; 
lbdispon.DataBind; 
end; 


por este

AdpProdutos2.Active := false; 
AdpProdutos2.SelectCommand.CommandText := ´SELECT * FROM Produtos where Id_Produto = ´ + Request.QueryString[´Id´].ToString; 
AdpProdutos2.Active := true; 
AdpProdutos2.Fill(****nomedoseudataset****);
lbprod.DataBind; 
lbprco.DataBind; 
img.DataBind; 
lbGarantia.DataBind; 
lbdispon.DataBind; 
end; 


Tenta isso e depois posta se funcionou. Caso ainda de errado estudamos outra forma de resolver.

Até
Sanses


GOSTEI 0
Mjr

Mjr

18/05/2005

É Sanses,

O negócio tá feio, voltei novamente pro dBWebGrid, mas agora ele desaparece, já fiz de tudo mas ele simplesmente fica invisível, acho que o que causaria isso era falta de registros, mas esse não é o meu problema, e por isso não teve como eu testar com o Fill. Você sabe o que pode estar acontecendo?

Grato.

mjr.


GOSTEI 0
Sanses

Sanses

18/05/2005

virifique as ligações do dbwebgrid. Se estiverem corretas tem que aparecer de qualquer forma.


Sanses


GOSTEI 0
POSTAR