Avatar billede Slettet bruger
23. marts 2006 - 22:47 Der er 3 kommentarer og
1 løsning

Referere asp:image i formview fra code behind

Hejsa,

Jeg har kæmpet med et problem, der nu er ved at have givet mig grå hår i hovedet nok for nu.

Jeg har en objectdatasource, der via et id fra en anden objectdatasource henter relevante data fra en database.

Disse data vises i et formview der er bundet til denne objectdatasource.
Sp langt så godt og det virker fint.

Dog har jeg et problem med billeder. De vises fint nok hvis der er nogle, men hvis en nyhed ikke har et tilknyttet billede, vises et "broken image" i internet explorer.

Jeg vi lderfor gerne lave det sådan i min code behind, at der laves en validering på nyhedsojektet og hvis der ikke er et image - altså hvis Nyhed.Billede er tom, så skal mit asp:image ikke vises - altså img_Picture.Visible = false;

Men jeg kan ikke få det til at virke.
Her er den kode jeg benytter i min code behind.

// **********************************************
    // ods_SelectedNews_Selected - ODS valgt nyhed
    // **********************************************
    protected void ods_SelectedNews_Selected(object sender, ObjectDataSourceStatusEventArgs e)
    {
        Nyhed n = (Nyhed)e.ReturnValue;

        // Sæt den valgte nyheds overskrift dynamisk
        if (n != null)
        {
            this.SelectedNewsHeader = (string)n.Overskrift;

        }
    }

Hvordan refererer jeg til et asp:image og skjuler det hvis n.Billede er tom?
Avatar billede dr_chaos Nybegynder
24. marts 2006 - 08:18 #1
Hvordan viser du billedet i dit formview ?
Avatar billede Slettet bruger
24. marts 2006 - 11:45 #2
Sådan her:

<asp:Image ID="img_Picture" ImageAlign="Right" runat="server" ImageUrl='<%# Eval("Billede", "/grafik/nyhedsbilleder/{0}") %>' Visible="False" />

Det er så meningen, at jeg, hvis objectdatasorce-kontrollens tilknyttede objekt rent faktisk har et billede - nyhed.Billede != null, vil sætte img_Picture.Visible = true fra min code behind fil.
Avatar billede Slettet bruger
24. marts 2006 - 12:05 #3
Har selv fundet en løsning:

<asp:Image ID="img_Picture" ImageAlign="Right" runat="server" ImageUrl='<%#
Eval("Billede", "/grafik/nyhedsbilleder/{0}") %>' Visible="False"
OnPreRender="img_Picture_PreRender" />

Og fra code behind:

// *************************************************************
// img_Picture_PreRender - Sætter billede visible hvis ikke null
// *************************************************************
protected void img_Picture_PreRender(object sender, EventArgs e)
{
System.Web.UI.WebControls.Image img_Picture = (sender) as
System.Web.UI.WebControls.Image;
if (!String.IsNullOrEmpty(img_Picture.ImageUrl))
img_Picture.Visible = true;
else
            img_Picture.Visible = false;
}
Avatar billede dr_chaos Nybegynder
24. marts 2006 - 12:41 #4
kunne også have gjort det på en anden måde uden prerender.
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