Avatar billede bongo20 Nybegynder
08. april 2006 - 19:22 Der er 7 kommentarer og
1 løsning

asp:GridView customize

Hej

Jeg er ved at prøve at bruge asp:GridView til visning af indholdet i en database.

Det virker også fint, og min Gridview viser alle de felter den skal, men jeg vil godt selv bestemme hvordan den skal vise det.
F.eks. har jeg et felt med en URL til et billede, og her skal jeg gerne have billedet vist og ikke en URL.

Kan jeg fortælle i hvilken række og kolonne den skal gøre hvad? eller er der en anden kontrol der er bedre?
Kan det måske være jeg er nødt til kode det i hånden?

På forhånd tak

:-)
Avatar billede driis Nybegynder
08. april 2006 - 22:06 #1
Ja.
Sæt AutoGenerateColumns="false".

Dernæst skal du selv definere dine kolonner i Columns sektionen. Hvis du blot vil vise indholdet af kolonnen som en streng, skal du bruge BoundField. Hvis du selv præcist vil bestemme indholdet, skal du bruge TemplateField.
Avatar billede driis Nybegynder
08. april 2006 - 22:07 #2
Eksempel udfra hukommelsen:

<asp:GridView runat="server" AutoGenerateColumns="false">
<Columns>
  <BoundField DataField="Name" />
  <TemplateField>
    din template.
  </TemplateField>
</asp:GridView>
Avatar billede bongo20 Nybegynder
08. april 2006 - 22:51 #3
nu ser min GridView sådan her ud:

<asp:GridView ID="Art runat="server" AutoGenerateColumns="false">                 
  <Columns>
      <asp:TemplateField HeaderText="">
            <ItemTemplate>
                <asp:Image runat="server"  />           
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Men hvordan går jeg nu sat en imageurl på mit image tag?
Avatar billede driis Nybegynder
08. april 2006 - 23:38 #4
<asp:GridView ID="Art runat="server" AutoGenerateColumns="false">               
  <Columns>
      <asp:TemplateField HeaderText="">
            <ItemTemplate>
                <asp:Image ImageUrl=<%# DinBilledeUrl %> runat="server"  />         
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Hvor "DinBilledeUrl" så svarer til elementet i din datakilde, der indeholder billede url'en. Eks. hvis du har bundet dit gridview til en tabel med en kolonne ved navn "DinBilledeUrl".
Avatar billede bongo20 Nybegynder
08. april 2006 - 23:51 #5
det der har jeg også fundet nogle steder, men det er da frygtelig grim kode.
Kan det ikke gøres fra codebehind?
Avatar billede driis Nybegynder
08. april 2006 - 23:58 #6
Tjoe, men idéen med et templated field er netop at du kan specificere præcist hvordan din markup skal se ud.

Hvis ikke du vil gøre det deklarativt, kan du lave en klasse der arver fra DataControlField, og som laver det markup du ønsker.

Dog, for tilfældet med billedet, findes denne i forvejen. Det havde jeg glemt da jeg svarede første gang:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.imagefield(VS.80).aspx
Avatar billede bongo20 Nybegynder
09. april 2006 - 12:30 #7
problemet synes jeg lidt er manglende mulighed for at manipulere inputtet.

Hvis jeg nu har et billede der ligger på: http://www.yesyes.dk/images/test.jpg
Det skal dog kunne flyttes imellem testservere og localhost.
Er det så et krav at der står http://www.yesyes.dk/images/test.jpg i mit datafelt, eller kan man tilføje http://www.yesyes.dk/images/ til feltet inden den renderes?

Så jeg vil kunne nøjes med test.jpg i datafeltet...
Avatar billede driis Nybegynder
09. april 2006 - 13:28 #8
Du kan bruge "~/" til at referere til applikationens rod; og dermed bliver stien til dit billede "~/images/test.jpg"
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