Asp.net IF statement in een column

Pagina: 1
Acties:

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ik heb het volgende

ik heb een datagrid met verschillende kolommen, niet autogenerated
Nu heb ik een klein probleempje.

Ik moet gebruik maken van een bestaande database, in die database is een tabel contactpersonen.
een contactpersoon heeft allerlei informatie en een geslacht. Dat geslacht is een nummer. Ik wil gewoon in de tabel "man" of "vrouw" neer zetten.

Maar ik kom er niet echt uit,
ik heb het volgende
code:
1
2
3
4
5
6
7
8
9
asp:BoundColumn DataField="Notities" ReadOnly="True" HeaderText="Notities"></asp:BoundColumn>

 <%# if ((DataBinder.Eval(Container.DataItem, "Geslacht")) = 1)
          then 
  %>
    <asp:label runat="server" Text="Man" </asp:label>
 <%# else %> 
    <asp:label runat="server" Text="vrouw"></asp:label>
 <%# end if %>


Maar volgens mij is het niet mogelijk om die asp code blokken te gebruiken
(de compiler valt er ook al over)
Maar wat is dan een handige (makkelijke) manier om dit te doen

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Je moet gebruik maken van een TemplateColumn.

oogjes open, snaveltjes dicht


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja daar heb ik ook al zitten denken, omdat ik een template kolom heb gebruikt om de titel, voorletter, tussenvoegsels en achternaam in 1 kolom te zetten. Maar kun je dan in een template kolom wel gewoon coden?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Iets van:
code:
1
2
3
4
5
<asp:TemplateColumn>
   <ItemTemplate>
       <%# GetFullName(Container.DataItem) %>
   <ItemTemplate>
</asp:TemplateColumn>

GetFullName zet je dan in de onderliggende code file

oogjes open, snaveltjes dicht


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja, je bedoelt dan zoiets
code:
1
2
3
4
5
<asp:TemplateColumn>
   <ItemTemplate>
       <%# GetFullName(DataBinder.Eval(Container.DataItem, "Geslacht")) %>
   <ItemTemplate>
</asp:TemplateColumn>


En dan krijg je die waarde van die rij op dat moment in de functie GetFullName, en die return waarde komt dan in dat veld te staan als ik het goed begrijp?

/Edit
Wat is dan de waarde die je doorkrijgt bij de funtie, is dat dan het type van de database?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Je zult het result van GetFullName waarschijnlijk in een asp:label moeten gooien:
code:
1
2
3
4
5
<asp:TemplateColumn>
   <ItemTemplate>
       <asp:label text="<%# GetFullName(DataBinder.Eval(Container.DataItem, "Geslacht")) %>">
   <ItemTemplate>
</asp:TemplateColumn>

oogjes open, snaveltjes dicht


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja, dat snapte ik al

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ok het was dus vrij simpel achteraf, als iemand nog interesse heeft in de code:
code:
1
2
3
4
5
asp:TemplateColumn HeaderText="Geslacht" headerstyle-horizontalalign="Center">
                     <ItemTemplate>
                       <asp:label runat="server" Text='<%# GetFullName(DataBinder.Eval(Container.DataItem, "Geslacht")) %>'></asp:label>
                     </Itemtemplate>
                    </asp:TemplateColumn>


en dat is dit de functie

code:
1
2
3
4
5
6
7
Function GetFullName(strGeslacht As String)
  if (strGeslacht = "1") then
    return "man"
  else
    return "vrouw"
  end if 
End Function
Pagina: 1