Avatar billede dannv Nybegynder
31. august 2007 - 07:41 Der er 8 kommentarer og
1 løsning

.net ajax slideshowextender

Jeg er igang med at lage med .net ajaxtoolkit, nærmere bestemt slideshowextender.

Selve slide show kommer op på siden, min webservice levere et array af slides (tilsyneladende) men, jeg kan ikke skifte billede/slide i ui eller sætte det til at køre automatisk... der sker bare ingenting.... kun default billede vises.

Her kommer lige noget kode så der forhåbentligt er nogen der lige kan gennemskue denne...

aspx - snippet...:
<asp:Image ID="RestaurantImage" runat="server"                                ImageUrl="~/Images/Hotels/hotellet1.jpg" AlternateText="Blue Hills image" />
                            <br />
                            <asp:Button runat="Server" ID="BackButton" Text="Prev" BorderColor="#FFAC11" BorderWidth="1" BackColor="white" ForeColor="#284775"
                    Font-Names="Verdana"/>&nbsp;
                            <asp:Button runat="Server" ID="PlayButton" Text="Play" BorderColor="#FFAC11" BorderWidth="1" BackColor="white" ForeColor="#284775"
                    Font-Names="Verdana"/>&nbsp;
                            <asp:Button runat="Server" ID="ForwardButton" Text="Next" BorderColor="#FFAC11" BorderWidth="1" BackColor="white" ForeColor="#284775"
                    Font-Names="Verdana"/>&nbsp;
                            <ajaxToolkit:SlideShowExtender  ID="slideshowextend1" runat="server" TargetControlID="RestaurantImage"
                                SlideShowServiceMethod="GetSlides" SlideShowServicePath="~/Services/GetSlidesService.asmx"
                                AutoPlay="true" NextButtonID="ForwardButton" PlayButtonText="Play"
                                StopButtonText="Stop" PreviousButtonID="BackButton" PlayButtonID="PlayButton" Loop="false" />

WEBservice snippet:

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;

/// <summary>
/// Summary description for GetSlidesService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class GetSlidesService : System.Web.Services.WebService {

    public GetSlidesService () {

        //Uncomment the following line if using designed components
        //InitializeComponent();
    }

    [WebMethod]
    public AjaxControlToolkit.Slide[] GetSlides() {
        AjaxControlToolkit.Slide[] sl = new AjaxControlToolkit.Slide[] {
                new AjaxControlToolkit.Slide(@"C:\Inetpub\wwwroot\CusineRating\Images\Hotels\hotellet1.jpg", "Blue Hills", "Go Blue"),
                new AjaxControlToolkit.Slide(@"C:\Inetpub\wwwroot\CusineRating\Images\Hotels\hotellet2.jpg", "Sunset", "Setting sun"),
                new AjaxControlToolkit.Slide(@"C:\Inetpub\wwwroot\CusineRating\Images\Hotels\hotellet3.jpg", "Winter", "Wintery...")};
    }
   
}
Avatar billede crazysnap Seniormester
31. august 2007 - 15:04 #1
Hej dannv,

Mangler du ikke at returnere "sl" i din GetSlides() WebMethod?

altså tilføje:


return sl;



Mvh.

- Snap :)
Avatar billede dannv Nybegynder
01. september 2007 - 08:48 #2
jo, det gør jeg godt nok i ovenstående kode, men i den kørende metode er den med....
Avatar billede crazysnap Seniormester
01. september 2007 - 12:19 #3
Hej dannv,


Hov, havde slet ikke lagt mærke til dine stier på billederne. Jeg er ret sikker på den forventer en relativ sti til dem. Men hvorfor laver du også en hel webservice til dem? Du kan jo bare tilføje en statisk WebMethod på siden hvor du har din SlideShowExtender? Altså f.eks. have en sådan metode i din CodeBehind på din webside:


[WebMethod]
public static AjaxControlToolkit.Slide[] TestSlides()
{
    AjaxControlToolkit.Slide[] sl = new AjaxControlToolkit.Slide[] {
          new AjaxControlToolkit.Slide("./Images/Sunset.jpg", "Blue Hills", "Go Blue"),
          new AjaxControlToolkit.Slide("./Images/Winter.jpg", "Sunset", "Setting sun"),
          new AjaxControlToolkit.Slide("./Images/Water lilies.jpg", "Winter", "Wintery...")};

    return sl;
}


Og i dit HTML script:


<ajaxToolkit:SlideShowExtender  ID="slideshowextend1" runat="server" TargetControlID="RestaurantImage"
            SlideShowServiceMethod="TestSlides"
            AutoPlay="true" NextButtonID="ForwardButton" PlayButtonText="Play"
            StopButtonText="Stop" PreviousButtonID="BackButton" PlayButtonID="PlayButton" Loop="false" />


Forudsat du har en Images folder i roden af dit web projekt med de 4 billeder. Men du kan også sagtens have en webservice kørende, prøv bare at give den relative sti til dem i stedet (det er nemlig det der er fejlen i din kode lige nu, at den ikke får ordentligt fat i dine billeder, resten af koden er fin).


Mvh.

- Snap
Avatar billede dannv Nybegynder
01. september 2007 - 16:28 #4
Ok, svar udbedes... så vanker der points... det var korrekt med stien.

Stien til billederne skal komme fra en db, og billederne var ikke tiltænkt at ligge i projektet, men andetsteds på disken. Hvordan skal jeg så referer disse, når jeg ikke kan benytte en absolut sti...??
Avatar billede dannv Nybegynder
01. september 2007 - 16:30 #5
Hvorfor en (seperat) service... ja jeg kan bare godt lide at holde tingene adskilt, og så er det mit første forsøg udi services...
Avatar billede crazysnap Seniormester
03. september 2007 - 11:04 #6
Hej dannv,

Jeg kan godt komme med et svar selvom jeg ikke synes opgaven er helt løst endnu. :)

Jeg ved ikke helt hvordan du kan løse dit problem hvis du vil have billederne til at ligge et andet sted end i projektet. Du kan måske lave et nyt web-projekt med din webservice og billederne i. På den måde kan du fra dit første web-projekt referere billeder i det andet web-projekt med f.eks. en sådan sti:


"http://www.dit-nye-webprojekt-med-billeder-og-webservice.dk/Images/Sunset.jpg"


Men hvor har du tænkt dig at køre siden fra (siden du vil have billederne andensteds)? Det skal ikke over på en web-server? Måske skal det kun køres fra din computer? Eller hvordan? For hvis det skal over på en rigtig webserver på et tidspunkt, skal billederne jo også med på en eller anden måde?

Jeg har dog også set andre løsninger hvor der FTP'es til en anden "image-server" hvor billeder hentes til sin lokale server for derefter at vises. Men så skal du til at oprette FTP-connections, checke om billederne ligger der i forvejen, kopiere dem over osv osv..


Mvh.

- Snap :)
Avatar billede dannv Nybegynder
03. september 2007 - 11:16 #7
H
Avatar billede dannv Nybegynder
03. september 2007 - 11:18 #8
Jo problemet er skam løst, at benytte lokal reference til billederne. Sitet skal kører på en server når det er modnet nok, billerne bliver også flyttet, og i første omgang opretter jeg en filsttruktur inden i projektet. Efterfølgende må jeg så lave et design, hvor jeg fra en lokal webservice kalder en anden ... eller noget tilsvarende...

Dann
Avatar billede crazysnap Seniormester
03. september 2007 - 12:15 #9
Ok lyder fint. :)


Tak for pointene og held og lykke med det...


Mvh.

- Snap :)
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

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