Avatar billede mosquito Nybegynder
16. august 2006 - 18:15 Der er 5 kommentarer og
1 løsning

Ændre format for en streng i et boundfield i et gridview

Jeg har et gridview hvor en boundfield colonne indeholder en streng ex. 0101781901 som jeg gerne vil have repræsenteret som ved en bindestreg som her: 010178-1901.

DataFormatString converterer numeriske værdier til en streng repræsentation, men hvordan med alfanumeriske værdier??

Kan man override ToString() metoden for en Property, er det måske en løsning, men det er bare et guess..
Avatar billede snepnet Nybegynder
16. august 2006 - 19:13 #1
Hvad sker der hvis du laver sådan en her:
<asp:BoundField DataField="DinProperty" DataFormatField="{0:######-##}" HtmlEncode="false" />
Mvh
Avatar billede mosquito Nybegynder
16. august 2006 - 19:20 #2
uanset hvad jeg forsøger får jeg den rå string uden formatering, da det kun er numerisk data der kan overrides med dataformatfield. Men en anden tanke jeg har, er at ændre cellens indhold, runtime, men aner ikke hvilken metode jeg override.
Avatar billede snepnet Nybegynder
16. august 2006 - 20:24 #3
Du kan bare abbonnere på RowDataBound eventet på selve grid'et - det er ikke et override du skal lave... Der kan du lave al den formatering du ønsker

Ellers kan du gøre det med en template istedet:
<asp:TemplateField HeaderText="Desc" ItemStyle-HorizontalAlign="center">
    <ItemTemplate>
        <%# Eval("Text").ToString().Substring(0, 6) + "-" + Eval("Text").ToString().Substring(7, 2)%>
    </ItemTemplate>         
</asp:TemplateField>

Ellers kan du lave en særlig property på din klasse der returnerer den formaterede string, hvis det en mere generel ting.

Mvh
Avatar billede mosquito Nybegynder
22. august 2006 - 08:38 #4
snepnet, tak for hjælpen. Smid svar og point er dine.

Her er min final løsning til mit problem.

protected void rgElever_ItemDataBound(object sender, GridItemEventArgs e)
      {
        if (e.Item is GridDataItem)
        { 
            GridDataItem item = (GridDataItem)e.Item;
            TableCell cprCell = item["cpr"];
            cprCell.Text = cprCell.Text.Substring(0, 6) + "-" + cprCell.Text.Substring(6, 4);
        }
      }
Avatar billede snepnet Nybegynder
22. august 2006 - 08:42 #5
Et svar får du her :o)
Mvh
Avatar billede mosquito Nybegynder
22. august 2006 - 09:42 #6
og her kommer point ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester