Avatar billede fun22 Nybegynder
21. juli 2007 - 13:58 Der er 12 kommentarer og
1 løsning

if sætning i repeater

Hej..

JEg har en repeater som virker som den skal, men i min db har jeg nogen felter som f.eks "active" som enten er 1 eller 0.

Dem vil jeg gerne have lavet om til noget lidt mere forståeligt i min repeater.

Sådan at når den er 1 så skriver den Aktiv osv..

Jeg har søgt eksperten igennem, og prøvet det der var men jeg kan ikke få det til at virke..

Bruger en SqlDataSource og koder i VB..

Nogen der kan hjælpe?
Avatar billede arne_v Ekspert
21. juli 2007 - 14:15 #1
Prøv:

<%# DataBinder.Eval(Container.DataItem,"active")==1 ? "Aktiv" : "Passiv" %>
Avatar billede neoman Novice
21. juli 2007 - 14:18 #2
Du kunne lave lidt "klamp" i ASPX filen ved at have en funktion som tager DB værdien og spytter noget andet ud. Fremgangsmåden er her: http://www.eksperten.dk/spm/780370

En anden metode er at bruge ItemDataBound eventet, som kører for hver række. Derinde kunne du tage den værdi som ligger i en label/textbox/whatever, og erstatte den med det du ønsker.

Finally, endnu en metode er at lave en DropDownList med de værdier du ønsker at vise, og i repeateren at binde den til det felt du ønsker at vise. DDL'en kunne sættes myDDL.enabled=false, så brugeren ikke tror han selv kan lave om på værdierne.
Avatar billede fun22 Nybegynder
21. juli 2007 - 14:18 #3
Det dur ikke.. "Udtryk var ventet", "syntaxfejl", "character is not valid" osv..
Avatar billede neoman Novice
21. juli 2007 - 14:19 #4
Hehe ... s'følig har arne_v den bedste løsning (som jeg håber funker i VB) :)
Avatar billede fun22 Nybegynder
21. juli 2007 - 14:20 #5
neoman >> Din metode to har jeg forsket lidt i men ikke kunne få den til at virke.. Har du et eksempel du kan ryste ud af ærmet?? :)
Avatar billede neoman Novice
21. juli 2007 - 14:45 #6
nope. Smid det du har lavet herind og sig hvad den gør/ikke gør. I mellemtiden kan vi håbe, at arne ryster et mirakel ud af hans ærmer:)
Avatar billede arne_v Ekspert
21. juli 2007 - 15:10 #7
Min kode var C# ikke VB.NET. Jeg undersøger lige hvad man kan i VB.NET !
Avatar billede arne_v Ekspert
21. juli 2007 - 15:26 #8
C# der virker:

<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.SqlClient" %>
<html>
<head>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test");
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM T1", con);
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    MyDataList.DataSource = rdr;
    MyDataList.DataBind();
}
</script>
</head>
<body>
<form runat=server>
    <table border>
        <asp:Repeater id="MyDataList" runat="server">
            <ItemTemplate>
                <tr>
                <td><%# (int)DataBinder.Eval(Container.DataItem,"F1") == 1 ? "Et" : "Ikke et"  %></td>
                <td><%# DataBinder.Eval(Container.DataItem,"F2") %></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
</form>
</body>
</html>
Avatar billede arne_v Ekspert
21. juli 2007 - 15:26 #9
VB.NET der virker:

<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.SqlClient" %>
<html>
<head>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
    Dim con As SqlConnection = New SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test")
    con.Open()
    Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM T1", con)
    Dim rdr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
    MyDataList.DataSource = rdr
    MyDataList.DataBind()
End Sub
</script>
</head>
<body>
<form runat=server>
    <table border>
        <asp:Repeater id="MyDataList" runat="server">
            <ItemTemplate>
                <tr>
                <td><%# Iif(CType(DataBinder.Eval(Container.DataItem,"F1"),Integer) = 1, "Et", "Ikke et") %></td>
                <td><%# DataBinder.Eval(Container.DataItem,"F2") %></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>
</form>
</body>
</html>
Avatar billede arne_v Ekspert
21. juli 2007 - 15:27 #10
Iif er ikke nogen pæn løsning, så måske burde du vælge neomans løsning med
en egen funktion som konverterer fra Integer til String.
Avatar billede arne_v Ekspert
22. september 2007 - 21:50 #11
Tid at få afsluttet her ?
Avatar billede fun22 Nybegynder
31. maj 2008 - 00:03 #12
Smider i et svar?
Avatar billede arne_v Ekspert
31. maj 2008 - 00:32 #13
jeps
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