Avatar billede scorp-d Nybegynder
13. juli 2008 - 23:53 Der er 6 kommentarer og
1 løsning

Manglende billede ved Imagefield i Gridview.

Hej...

Jeg har en gridview som er DB-styret, og i den gridview befinder der sig et imagefield per række.

Problemet er så at de billeder som skal tilknyttes ikke altid er tilgængelig, og hvis dette er tilfældet skal der benyttes et "Fotografen er på vej"-billed. Men syndes ikke jeg kan finde denne funktion.

Har prøvet at bruge OnError ved gridview'en men syndes ikke det hjælper:

testGridView.Attributes["OnError"] = " this.src = 'Billeder/BilledMangler.gif'";

På forhånd tak
Scorp-D
Avatar billede mcnovy Nybegynder
14. juli 2008 - 06:59 #1
kan ikke lige huske event navnet,
men du kan bruge en event som køre for hver row du tilføjer, og i den funktion ville du så gøre noget ala:

if (ImageField.imageurl == null)
imageField.imageurl = fotografpaavej.gif;
Avatar billede scorp-d Nybegynder
14. juli 2008 - 14:49 #2
Jeg har prøvet at lave en RowCreated event, hvor jeg tester om det er en DataRow som bliver lavet(og ikke bare header eller footer), men så syndes jeg ikke rigtig jeg kan komme længere...

Har prøvet en hel del af de e.Row.xxxx som der findes, men syndes ikke jeg kommer videre...
Avatar billede mcnovy Nybegynder
14. juli 2008 - 20:23 #3
jeg kan ikke huske om man skal bruge rowcreated, eller rowdatabound..
tror det er den sidste...
det du så gør er:

ImageField Navn = (ImageField)e.Row.FindControl("ImageField_DitImage");
//og så kan du bruge Navn til at ændre billedet med..
Avatar billede scorp-d Nybegynder
07. august 2008 - 19:24 #4
Undskyld den lange svartid.

Har prøvet følgende, men den den virker ikke helt, så ville høre om der kan gives noget response(kan ikke rigtig debugge det). Virker som om resultatet bliver ændret men det er først ved næste postback at visningen opdateres.

protected void gwForhandlere_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if(e.Row.RowType.ToString() == "DataRow")
        {
            DataControlFieldCell test = (DataControlFieldCell)e.Row.Controls[5];
            ImageField imageField = (ImageField) test.ContainingField;

            string fuldSti = Path.GetFullPath(imageField.DataImageUrlFormatString);

            if (imageField.DataImageUrlFormatString == null || !File.Exists(fuldSti))
            {
                imageField.DataImageUrlFormatString = @"/Billeder/ManglendeBilled.gif";
                LblPostnummer.Text = "lykkes";
            }
    }
    }


mcnovy# Kunne ikke rigtig finde ud af at få findControls til at virke, for jeg kunne ikke give imagefield'et et fast navn.
Avatar billede scorp-d Nybegynder
07. august 2008 - 19:26 #5
LblPostnummer viser teksten 'lykkes' uden postback, men billedet bliver ved med at være det som står i 'DataImageUrlFormatString' fra starten af.
Avatar billede scorp-d Nybegynder
10. august 2008 - 20:39 #6
underligt nok.... Hvis den køre flere igennem samtidig virker alle undtagen den første fint.....
Avatar billede scorp-d Nybegynder
10. august 2008 - 21:43 #7
Dette virker til GridView:

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DataControlFieldCell dcfc = (DataControlFieldCell)e.Row.Controls[5];
            ImageField imageField = (ImageField)dcfc.ContainingField;

            string fuldSti = Path.GetFullPath(imageField.DataImageUrlFormatString);

            if (imageField.DataImageUrlFormatString == null || !File.Exists(fuldSti))
            {
                imageField.DataImageUrlFormatString = @"/Billeder/ManglendeBilled.gif";
            }
        }
    }

Og dette virker til DetailsView:

    protected void DetailsView1_ItemCreated(object sender, EventArgs e)
    {
        DetailsView dv = ((DetailsView)sender);

        DataControlFieldCell dcfc = (DataControlFieldCell)dv.Rows[4].Controls[1];

        ImageField imageField = (ImageField)dcfc.ContainingField;

        string fuldSti = Path.GetFullPath(imageField.DataImageUrlFormatString);

        if (imageField.DataImageUrlFormatString == null || !File.Exists(fuldSti))
        {
            imageField.DataImageUrlFormatString = @"/Billeder/ManglendeBilled.gif";
        }
    }
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