Javascript em páginas que usam Ajax.NET
Sempre queremos exibir um alert() em uma página, logo após uma ação executada. Em páginas que utilizam Ajax, os comandos Page.RegisterXXXX() não funcionam!
Para isso, basta apenas utilizar o função de registro de scripts do ScriptManager (responsável por todo Ajax na página). Um exemplo abaixo:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), “nome”, “alert(’teste’);”, true);
A documentação da função acima pode ser encontrada aqui.
[]’s
Paginando um Repeater
O componente Repeater não controla paginação, diferentemente do GridView. Mesmo assim, às vezes precisamos paginar o Repeater. Como fazer? Basta utilizar a classe PagedDataSource.
Um pequeno trecho de código que vai explicar mais do que se eu ficar aqui escrevendo e escrevendo!
–
PagedDataSource pds = new PagedDataSource();
pds.DataSource = RetornaListaDeDados();
pds.AllowPaging = true;
pds.PageSize = 20; // quantidade de elementos por pagina!
pds.CurrentPageIndex = PagAtual – 1; // Seta a pagina atual, lembrando que índice começa no 0.
rptMeuRepeater.DataSource = pds;
rptMeuRepeater.DataBind();
–
O PagedDataSource também fornece a propriedade “PageCount” que informa o número total de páginas. Com isso, você pode fazer os botões de Próximo, Anterior, Primeiro e Último.
Outras referências para o PagedDataSource são:
- O próprio MSDN:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.pageddatasource.aspx
- O excelentíssimo 4GuysFromRolla:
http://aspnet.4guysfromrolla.com/articles/081804-1.aspx
- Um exemplo prática no CodeProject:
- http://www.codeproject.com/Kb/aspnet/pagingBySreejith%20Thathanattu.aspx
[]’s!
Criando um forward dinâmico no Struts
Olás,
Já tentou alguma vez redirecionar uma Action de Struts pra uma URL formada dinâmicamente? Por exemplo, ao final da ação você quer redirecionar para pagina.jsp?id={0} . Com o Struts, todos os redimensionamentos são feitos através do struts-config.xml e você não consegue colocar variáveis nesses mapeamentos!
A solução pra isso é criar um forward em tempo de execução. A classe abaixo faz todo esse processo:
–
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.struts.action.ActionForward;
public class ActionParameterForward {
private Map params=new HashMap();
@SuppressWarnings(”unchecked”)
public ActionParameterForward add(String paramName,String paramValue){
params.put(paramName,paramValue);
return this;
}
public ActionForward forward(ActionForward forward, boolean redirect){
StringBuffer path=new StringBuffer(forward.getPath());
Iterator iter=params.entrySet().iterator();
if(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
path.append(”?”+entry.getKey()+”=”+entry.getValue());
while(iter.hasNext()){
entry=(Map.Entry)iter.next();
path.append(”&”+entry.getKey()+”=”+entry.getValue());
}
}
ActionForward af = new ActionForward(path.toString());
af.setRedirect(redirect);
return af;
}
}
–
E basta fazer no retorno da sua Struts Action:
–
return new ActionParameterForward()
.add(”variavel1″,”valor1″)
.add(”variavel2″,”valor2″)
.forward(mapping.findForward(”forward_dinamico”), true);
–
Ou seja, supondo que forward_dinamico seja:
<forward name=”forward_dinamico” path=”/WEB-INF/JSP/arquivo.jsp” redirect=”false” />
Ele vai gerar a seguinte URL: arquivo.jsp?variavel1=valor1&variavel2=valor2 e realizar o forward para essa URL recém-criada!
Você consegue até definir a flag “redirect” do mapeamento!
Com isso, conseguimos criar forwards dinâmicos no Struts!
Mais informações sobre Struts, você encontra em: http://struts.apache.org/
[]’s
Problemas com Validation Controls e Ajax no .NET 2.0
Você já criou uma aplicação completa em .NET 2.0, utilizando Ajax e Validators e no Visual Studio tudo funcionava, mas após você atualizar a versão do AJAX .NET tudo parou de funcionar?
Isso acontece pois quando você poe Validators dentro de um UpdatePanel, você na verdade está usando Validators provenientes do Ajax e não da própria framework. Isso é feito de forma transparente pra você, e essa configuração está setada no seu web.config, na seção tagMapping.
Na última versão lançada do Ajax .NET 2.0, esses componentes acabaram não sendo colocados! Enquanto o patch novo não sai, existe uma .dll que faz o papel desses Ajax Validators.
Você encontra mais informações no blog do Matt Gibbs.
Basta baixar a dll que ele disponibiliza lá e inserir o novo mapeamento de tags na seção tagMapping do seu web.config:
–
<tagMapping>
<add tagType=”System.Web.UI.WebControls.CompareValidator” mappedTagType=”Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0″/>
<add tagType=”System.Web.UI.WebControls.CustomValidator” mappedTagType=”Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0″/>
<add tagType=”System.Web.UI.WebControls.RangeValidator” mappedTagType=”Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0″/>
<add tagType=”System.Web.UI.WebControls.RegularExpressionValidator” mappedTagType=”Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0″/>
<add tagType=”System.Web.UI.WebControls.RequiredFieldValidator” mappedTagType=”Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0″/>
<add tagType=”System.Web.UI.WebControls.ValidationSummary” mappedTagType=”Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0″/>
</tagMapping>
–
E pronto! Seu site deve voltar a funcionar!
[]’s!
Deixe um comentário
Deixe um comentário
Comentários(1)