Array
(
)

Formatar CPF em um DataGrid

Sandroperes
   - 11 dez 2007

Preciso formatar o CPF no datagrid já tentei :

{0:G#..-}

mas não obtive sucesso.


Xrafaelx
   - 11 dez 2007


Citação:
Preciso formatar o CPF no datagrid já tentei :

{0:G#..-}

mas não obtive sucesso.


usa um javascript para formatar


Pauloroger
   - 11 dez 2007

Use AjaxToolKit, vc não usa RAD Studio ???

segue link http://www.asp.net/AJAX/AjaxControlToolkit/Samples/MaskedEdit/MaskedEdit.aspx


Sandroperes
   - 12 dez 2007

estou usando delphi 2006

Usei esse javascript para formatar o CPF

<script type=´text/javascript´>
function formatar_mascara(src, mascara) {
var campo = src.value.length;
var saida = mascara.substring(0,1);
var texto = mascara.substring(campo);
if(texto.substring(0,1) != saida) {
src.value += texto.substring(0,1);
}
}
</script>

E na coluna coloquei
<ASP:HyperLinkColumn datanavigateurlfield=´CAD_CODIGO´ datanavigateurlformatstring=´pInclusaoGuia.aspx?ID={0}´ datatextfield=´CAD_CPF´ headertext=´CPF´ datatextformatstring=´Javascript:formatar_mascara({0},´#..-´}´></ASP:HyperLinkColumn>

Mas infelizmente não surgiu efeito.. O que posso estar errando?


Xrafaelx
   - 12 dez 2007

FUNCIONA NO MOZILA E NO IE
<script language=´JavaScript´>
//-----> somente números:
function v_NR(tecla){
if(typeof(tecla) == ´undefined´)
var tecla = window.event;
var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);
// permite números, 8=backspace, 46=del e 9=tab
if ( (codigo >= 48 && codigo <= 57) || (codigo >= 96 && codigo <= 105) || codigo == 8 || codigo == 46 || codigo == 9 )
{ return true; }
else
{ alert(´Apenas números são permitidos !´); return false; }
}

//-----> máscara cpf:

function m_CPF(campo,tammax) {
var vr = campo.value;
vr = vr.replace( ´-´, ´´ );
vr = vr.replace( ´.´, ´´ );
vr = vr.replace( ´.´, ´´ );
var tam = vr.length;
if (tam < tammax) { tam = vr.length + 1; }
tam = tam - 1;
if ( (tam > 2) && (tam <= 11) ) {
vr = vr.substr( 0, tam - 1 ) + ´-´ + vr.substr( tam - 1, tam ); }
if ( (tam == 10) ) {
vr = vr.substr( 0, tam - 7 ) + ´.´ + vr.substr( tam - 7, 3 ) + ´.´ + vr.substr( tam - 4, tam ); }
campo.value = vr;
}
</script>


<asp:TextBox id=´TextBox1´ runat=´server´ onKeyPress=´m_CPF(this,11); return v_NR(event)´ onKeyDown=´return v_NR(event)´ onChange=´m_CPF(this,11)´ maxlength=´14´></asp:TextBox>


Sandroperes
   - 12 dez 2007

Valeu, vou tentar a sua sugestão.


Sandroperes
   - 13 dez 2007

Olá, mas como eu faço a chamada em um HyperLinkColumn eu coloquei:

javascript:m_CPF({0},11), ele esta me mostrando
javascript:m_CPF(12345678901,11)

desde já agradeço pelo auxilio.


Xrafaelx
   - 14 dez 2007

public
{ Public Declarations }
function MascaraCPF(cpf:&object) :String;



implementation

{....}

function TWebForm1.MascaraCPF(cpf:&object) :String;
var vCpf:Double;
begin
vCpf := Convert.ToDouble(cpf);
Result := System.String.Format(´{0:000\.000\.000-00}´,[vCPF]);
end;

no datagrid

<asp:TemplateColumn>
<ItemTemplate><asp:HyperLink id=´HyperLink1´ runat=´server´ text=´<¬# this.MascaraCpf(DataBinder.Eval(Container,´DataItem.CPF´))¬>´ /></asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>




pronto :roll:


Sandroperes
   - 17 dez 2007

Obrigado, vou tentar a sua sugestão.


Sandroperes
   - 29 fev 2008

Show de Bola!!!!
Funcionou.


Sandroperes
   - 29 fev 2008

Hã estava ne esquecendo eu tive que alterar a função

function TWebForm1.MascaraCPF(cpf:&object) :String;
var vCpf:Double;
begin
if cpf.ToString = ´´ then
vCpf := Convert.ToDouble(&Object(0))
else
vCpf := Convert.ToDouble(cpf);
Result := System.String.Format(´{0:000\.000\.000-00}´,[vCPF]);
end;