Decrease Font Size
Increase Font Size
   BLOG

ASP NET slideshow Control with jQuery and XML

ASP.NET slide-shows control | ASP.NET slideshows control | ASP.NET AdRotator Control with jQuery and XML | ASP.NET Image SlideShow Control with jQuery and XML | ASP.NET Simple Image Slide Show | ASP.NET Simple Image Slide Show

Introduction

For the past few years, the image sliders, slide-shows, and Ad Rotator scripts have become increasingly popular for web pages. There are thousands of these scripts on the Web but is difficult to find one that fit my requirements. I want a script that is flexible enough for me to use it as a Ad Rotator, slide-shows or image rotator with navigation controls and extract the slides information from XML file. After spending some time researching for it, I found the jQuery based slideshow with navigation controls from Dynamic Drive and the article reading-xml-with-jquery. I had put together these finding and a brief tutorial "jQuery slideshow with XML". Recently, I decided to encapsulate this into ASP.NET User Controls to increase reusability of code. Now, I can have multiple instances of this control on my page and I can customize the width and height, options to hide or show navigation controls, XML file source, and others setting for each instance. I have put together a step by step tutorial on how I have accomplished this.

Figure 1 (mouse over to see larger image)
 Slide-shows preview

Check List

Simple Controls Gallery v1.3
reading-xml-with-jquery
jquery-1.3.2.min.js

Getting Started

Before we begin, make sure to download a copy of the Simple Controls Gallery v1.3 from Dynamic Drive, Reading XML with JQuery and the latest version of jQuery JavaScript Library. Here is the structure of my project. You are welcome to download this demo.

Figure 2

Project Structure

Putting everything together

SlideShow.ascx.cs
First, add a Web User Control to the project and create public properties and methods to allow interaction with the control at design-time or programmatically.

Listing 1

//slide div
    public string WrapperID
    {
        get { return this.ClientID + "Div"; }
    }

 

The WrapperID will return the unique id of the User Control. Every time we drop an ASP.NET User Control on to a page, it will automatically include an ID property that uniquely identifies the control. The ID value is the combination of the tagname and a number. If the tagname of the User Control is "SlideShow", the WrapperID will return SlideShow1Div, SlideShow2Div …SlideShowNDiv.

Listing 2

private int _width =728;
    [DefaultValue(728)]
    public int Width
    {
        set { this._width = value; } get { return this._width; }
    }
    //height of the slide
    private int _height = 95;
    [DefaultValue(95)]
    public int Height
    {
        set { this._height = value; }  get { return this._height; }
    }

Add the Width and Height properties to allow us to adjust the height and width of the div control.

Listing 3

// autoplay true|false 
    private bool _autoPlay = true;
    [DefaultValue(true)]
    public bool AutoPlay
    {
        get { return this._autoPlay; }  set { this._autoPlay = value; }
    }

    // Show Navigation Control true|false
    private bool _showNavigation = true;
    [DefaultValue(true)]
    public bool ShowNavigation
    {
        get { return this._showNavigation; } set{ this._showNavigation = value; }
    }

    private int _delay_btw_slide = 10000;
    /// delay between slide in miliseconds 
    [DefaultValue(10000)]
    public int Delay_btw_slide
    {
        set { this._delay_btw_slide = value; }   get { return this._delay_btw_slide; }
    }

    private int _fadeDuration = 2000;
    /// transition duration (milliseconds) 
    [DefaultValue(2000)]
    public int FadeDuration
    {
        set { this._fadeDuration = value; }  get { return this._fadeDuration; }
    }
    private int _cycles_before_stopping = 99;
    /// cycles befote stopping
    [DefaultValue(99)]
    public int Cycles_before_stopping
    {
        set { this._cycles_before_stopping = value; } get { return this._cycles_before_stopping; }
    }

    // previous button
    private string _btnPrevious = "~/images/previous.gif";
    [Category("Appearance"), Localizable(true)]
    [Description("Previous button"), DefaultValue("~/images/previous.gif"), Bindable(true)]
    [Editor("System.Web.UI.Design.ImageUrlEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]    [UrlProperty]
    public string BtnPrevious
    {
        get { return this._btnPrevious; } set { this._btnPrevious = value;}
    }
    // Next button
    
    // Play button 
    
// Pause button 

AutoPlay - true = start the slide show automatically without pressing the play button and vice versa.

ShowNavigation - true = show the navigation control or false = hide the navigation control

Delay_btw_slide - get or set the delay between each image slide.

FadeDuration - get or set the fade duration between each slide.

Cycles_before_stopping - get or set the number of rotation before stopping the rotation. If we set 99, it will rotate 99 times and stop until we hit the play button again.

BtnPrevious, BtnNext, BtnPlay, BtnPause - get or set the image for previous, next, play and the pause button respectively. These properties accept relative URL or absolute URL path to the button images. Make sure to place the images folder at the root directory of the application if you are using relative URL.

Listing 4

//xml file
    private string _xmlSource = "~/xml/sites.xml";
    [UrlProperty]
    [Bindable(true)]
    [DefaultValue("~/xml/sites.xml")]
    public string XMLSource
    {
        get { return this._xmlSource; } set { this._xmlSource = value; }
    }
//xPath
    private string _xPath = "site";
    [DefaultValue("site")]
    public string xPath
    {
        get { return this._xPath; }  set { this._xPath = value; }
    }

Add a property to get and set the XML source path. The default path is set to ~/xml/sites.xml. This property accepts relative URL or absolute URL path to the XML file. Make sure to place the XML folder at the root directory of the application if you are using relative URL. Then add another property, XPATH, to navigate through elements and attributes in the XML document.

Listing 5

void CreateScript()
    {
        StringBuilder ssScript = new StringBuilder(string.Empty);
        string arrName = "myArray" + this.WrapperID;

        //read XML
        ssScript.Append("var " + arrName+ "= [];");
        ssScript.Append("$(document).ready(function() {");
        ssScript.Append(" $.ajax({");
        ssScript.Append("type: \"GET\",");
        ssScript.Append("url: '" + ResolveUrl(XMLSource) + "',");
        ssScript.Append("cache: true,");
        ssScript.Append("dataType: \"xml\",");
        ssScript.Append("success: function(xml) {");
        ssScript.Append("var count = 0;");
        ssScript.Append("$(xml).find('" + xPath + "').each(function() {");

        ssScript.Append(" var url = $(this).find('url').text();");
        ssScript.Append("var target = $(this).find('target').text();");
        ssScript.Append("var imageURL = $(this).find('imageURL').text();");
        ssScript.Append("var alt = $(this).find('alt').text();");

        ssScript.Append(arrName + "[parseInt(count)] = new Array(imageURL, url, target, alt); ");
        ssScript.Append("count++;");
        ssScript.Append("});");

        //slide-shows
        ssScript.Append(" var mygallery"+this.WrapperID+" = new simpleGallery({");
        ssScript.Append(" wrapperid: '" + this.ClientID + "_" + this.WrapperID + "',");
        ssScript.Append("dimensions: [" + Width.ToString() + ","+ Height.ToString()+"],"); //width/height of gallery in pixels. Should reflect dimensions of the images exactly
        ssScript.Append("imagearray: "+arrName+","); //array of images
        ssScript.Append("navimages: ['" + ResolveUrl(BtnPrevious) + "', '" + ResolveUrl(BtnPlay) + "', '" + ResolveUrl(BtnNext) + "', '" + ResolveUrl(BtnPause) + "'],");
        ssScript.Append("showpanel: '" + ShowNavigation.ToString().ToLower() + "',");
        ssScript.Append(" autoplay: [" + AutoPlay.ToString().ToLower() + "," + Delay_btw_slide.ToString() + "," + Cycles_before_stopping.ToString() + "],"); //[auto_play_boolean, delay_btw_slide_millisec, cycles_before_stopping_int]
        ssScript.Append(" persist: true,");
        ssScript.Append(" fadeduration:" + FadeDuration.ToString() + ","); //transition duration (milliseconds)
        ssScript.Append(" oninit: function() {"); //event that fires when gallery has initialized/ ready to run
        ssScript.Append("  },");
        ssScript.Append("  onslide: function(curslide, i) {"); //event that fires after each slide is shown
        //curslide: returns DOM reference to current slide's DIV (ie: try alert(curslide.innerHTML)
        //i: integer reflecting current image within collection being shown (0=1st image, 1=2nd etc)
        ssScript.Append("   }");
        ssScript.Append("  })");
        ssScript.Append("  }");
        ssScript.Append("   });");
        ssScript.Append(" });");

        ClientScriptManager jScript = Page.ClientScript;
        jScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), ssScript.ToString(), true);
    }

Then add a method to render the JavaScript programmatically. The main purpose of this JavaScript is to read the slide information from the XML file into an array and initialize the slide-show properties. The key items of this JavaScript are the array variable, HTML div control and the slide-shows variable. In order to have multiple instances of the slide-shows on the page, we have to ensure that the unique ids and name are being assigned to the mentioned key items. We can utilize the WrapperID property to create a unique names and ids for each instance. Note that ResolveUrl method is being utilized so that the browser can resolve the URL of the images and XML file. The rest of the code is very straight forward; you can download the original code from Dynamic Drive to compare the changes.

Listing 6

void CreateDiv()
    {
        System.Web.UI.HtmlControls.HtmlGenericControl ssDivWrapper = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
        ssDivWrapper.ID = this.WrapperID;
        ssDivWrapper.Style.Add("background", "white none repeat scroll 0% 0%");
        ssDivWrapper.Style.Add(HtmlTextWriterStyle.Overflow, "hidden");
        ssDivWrapper.Style.Add(HtmlTextWriterStyle.Position, "relative");
        ssDivWrapper.Style.Add(HtmlTextWriterStyle.Visibility, "visible");
        ssDivWrapper.Style.Add(" -moz-background-clip", "border");
        ssDivWrapper.Style.Add("-moz-background-origin", "padding");
        ssDivWrapper.Style.Add("-moz-background-inline-policy", "continuous");

        this.Controls.Add(ssDivWrapper);
    }

The CreateDiv method will generate the HTML div on the page dynamically.

Listing 7

//load the javascript
    internal void LoadJScript()
    {
        ClientScriptManager script = Page.ClientScript;
        //prevent duplicate script
        if (!script.IsStartupScriptRegistered(this.GetType(), "JQuerySlideShowJS"))
        {
            script.RegisterClientScriptBlock(this.GetType(), "JQuerySlideShowJS",
            "<script type='text/javascript' src='" + ResolveUrl("~/SlideShowControl/js/jquery-1.3.2.min.js") + "'></script>");
        }

        if (!script.IsStartupScriptRegistered(this.GetType(), "SimpleGalleryJS"))
        {
            script.RegisterClientScriptBlock(this.GetType(), "SimpleGalleryJS",
            "<script type='text/javascript' src='" + ResolveUrl("~/SlideShowControl/js/simplegallery.js") + "'></script>");
        }
    }

The purpose of the LoadJScript method is to load the jquery-1.3.2.min.js and simplegallery.js dynamically with no duplicates. With that being said, if we drag 10 slide-shows controls on to a page, it will only add the JavaScript once on to the ASP.NET page. This will help avoid unnecessarily assembling the client-side script.

simplegallery.js
I'm not going to post the whole contents of this JavaScript here but I'll list the changes that I have made.

  1. Removed the static image buttons properties from the simpleGallery_navpanel interface since the image buttons will be assigned dynamically through the CreateScript method.
  2. Modified the script to read the image buttons properties from different interface.
  3. Added logic to hide and display the navigation control through the ShowNavigation property.
  4. Added alternate text to the image buttons.

 

Using the Code

Listing 8

<uc1:SlideShow ID="SlideShow2" runat="server" />

Drag and drop the User Control on to the page. Here is the default setting of the User control.

Figure 3

Project Structure

Listing 9

<uc1:SlideShow ID="SlideShow5" runat="server" 
	BtnNext="~/images/nav-arrow-right.gif" 
      BtnPrevious="~/images/nav-arrow-left.gif" AutoPlay="false" />

Above is an example on how to set the image buttons and AutoPlay property.

Listing 10

<uc1:SlideShow ID="SlideShow7" runat="server" XPath="site500x281"  
	Width="500" Height="281" ShowNavigation="true" 
      XMLSource="~/xml/500x281.xml"/>

The above example demonstrates on how to set the width, height of the HTML div control. The control is getting the images information from the 500x821.xml file and selecting the site500x281 nodes. By default, the ShowNavigation attribute is set to true.

Listing 11 - More sample usage

<uc1:SlideShow ID="SlideShow6" runat="server" BtnNext="~/images/nav-arrow-right.gif" 
        BtnPrevious="~/images/nav-arrow-left.gif" 
		XMLSource="~/xml/120x600.xml" XPath="site120x600" 
         Width="120" Height="600" />

<uc1:SlideShow ID="SlideShow1" XPath="site120x60" Width="120" Height="60"
                        ShowNavigation="false" 
                        runat="server" XMLSource="~/xml/sites2.xml"  />

 

Conclusion

If you are not sure of the relative path to the images or XML file, I would suggest using absolute links. Please keep in mind that the links to the XML files have to be in the same domain, no cross-domain calls. Also, try not to place all the images information in one XML file for multiple slide-shows controls. Imagine, if we have a XML file of 50KB in size, 10 slide-shows control on the page and each of them consume the identical XML source. It will cost us 500KB bandwidths and degrade the loading speed. I hope someone will find this tutorial useful and share some thoughts with me on how to make it better.

Tested on IE 6.0/7.0/8.0, Google Chrome and Firefox

References

Control ID Naming in Content Pages
Control..::.ResolveUrl Method
Dynamic Drive
How to: Create Instances of ASP.NET User Controls Programmatically
How to: Set ASP.NET Server Control Properties
Page..::.IsStartupScriptRegistered Method
Reading XML with JQuery

Watch this script in action

Demo

Downloads

Download

Comments (117) -

  • Apekshit Sharma

    8/30/2009 4:56:19 AM |

    I like this post very much I like to use on my blog

  • Outsourcing

    9/7/2009 10:01:31 AM |

    I was just thinking about ASP NET slideshow Control with jQuery and XML and you have really helped out. Thanks!

  • promotional merchandise companies

    9/28/2009 1:18:47 PM |

    I reached at right place to learn about this.  I am new with BlogEngine platform. Still learning about this. I thinks that its better than, WP. I will be very thankful if I found any help here.

  • Hirephpdevelopers

    9/30/2009 1:23:36 AM |

    Here given Nice details about Asp.net control the sildeshow using jquery and xml.These information are in the step by step details formats.First here given example with image view and then given details how to use the tools.Good Information about this topic.

  • mortgages for contractors

    10/4/2009 6:24:38 PM |

    You got a really useful blog I have been here reading for about an hour. I am a newbie and your success is very much an inspiration for me.

  • free online games

    10/6/2009 12:22:05 AM |

    Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

  • tutorial photoshop

    10/12/2009 9:01:44 AM |

    terimakasih Smile

  • pharmacist

    10/20/2009 5:40:05 PM |

    Your post is great!! I would love to bookmark it with my browser!

  • Abdul Javed Khan

    10/21/2009 6:31:21 PM |

    Hi

    I want to get xml file data dynamicaly rather then hard coding(as mentioned in this example XMLSource="~/xml/120x600.xml")
    Since my file is dynamic so I tried like below in page load
    SlideShow1.XMLSource = GetBanerXML();
    Here GetBanerXML() is a function which is returning xml data as we have in "120x600.xml", but it didn't work for me. It is showing blank page without any slide show

    Could you please give me some idea on it so that I can achieve it & can use this control...


    Thanks,
    Abdul Javed Khan

  • bryian

    10/22/2009 4:30:54 PM |

    Abdul,

    Try it with absolute link first. Instead of returning 120x600.xml, make your method to return http://mywebsite.com/120x600.xml.

    Thanks,
    Bryian Tan

  • Abdul Javed Khan

    10/22/2009 8:40:42 PM |

    Hello Bryian
    I am doing so, that is I am returning data as 120x600.xml file contains using my method GetBanerXML()...
    Since I don't have xml file in my application, I just have xml content which I am getting using GetBanerXML() & I don't want to create xml file.
    I am reading xml content in page load & assigning it to XMLSource property of SlideShow1.
    But still no success.
    So this is the issue with me.
    So any idea...

    Thanks,
    Abdul Javed Khan

  • Abdul Javed Khan

    10/22/2009 9:00:30 PM |

    Hello Bryian
    I am doing so, that is I am returning data as 120x600.xml file contains using my method GetBanerXML()...
    Since I don't have xml file in my application, I just have xml content which I am getting using GetBanerXML() & I don't want to create xml file.
    I am reading xml content in page load & assigning it to XMLSource property of SlideShow1.
    But still no success.
    So this is the issue with me.
    So any idea...

    Thanks,
    Abdul Javed Khan

  • bryian

    10/25/2009 2:51:43 PM |

    Abdul,

      Please email me your code or post it somewhere so I can help to identify the problem.

    ------------

    Yosef,
      Thanks.

    Thanks,
    Bryian Tan

  • Abdul Javed Khan

    10/25/2009 3:49:11 PM |

    Hello Bryian

    Everything I kept as it is except XMLSource, I am assigning it in page load.
    Here is the piece of code

    protected void Page_Load(object sender, EventArgs e)
        {
                 SlideShow1.XMLSource = GetBanerXML();
        }

    protected string GetBanerXML()
        {
            string sbXML="";
            sbXML="<?xml version='1.0' encoding='utf-8' ?>";
            sbXML=sbXML + "<sites>";
      
            sbXML=sbXML + "<site>";
            sbXML=sbXML + "<url><![CDATA[http://localhost/alideshow/images/brief-comments.jpg]]></url>";
            sbXML=sbXML + "<target>_new</target>";
            sbXML=sbXML + "<alt>americanex</alt>";
            sbXML=sbXML + "<imageURL><![CDATA[http://localhost/alideshow/images/brief-comments.jpg]]></imageURL>";
            sbXML=sbXML + "</site>";

            sbXML=sbXML + "<site>";
            sbXML=sbXML + "<url><![CDATA[http://localhost/alideshow/images/brief-details.jpg]]></url>";
            sbXML=sbXML + "<target>_new</target>";
            sbXML=sbXML + "<alt>discover</alt>";
            sbXML=sbXML + "<imageURL><![CDATA[http://localhost/alideshow/images/brief-details.jpg]]></imageURL>";
            sbXML=sbXML + "</site>";
            
            sbXML=sbXML + "</sites>";
            return sbXML;
        }

    Thanks,
    Abdul Javed Khan

  • Abdul Javed Khan

    10/25/2009 6:31:25 PM |

    Hello Bryian

    Below is my piece of code. I kept all the code as it is except XMLSource property. I am assigning it in page load as you can find in my code..

    protected void Page_Load(object sender, EventArgs e)
        {
                 SlideShow1.XMLSource = GetBanerXML();
        }

    protected string GetBanerXML()
        {
            string sbXML="";
            sbXML="<?xml version='1.0' encoding='utf-8' ?>";
            sbXML=sbXML + "<sites>";
      
            sbXML=sbXML + "<site>";
            sbXML=sbXML + "<url><![CDATA[http://localhost/alideshow/images/brief-comments.jpg]]></url>";
            sbXML=sbXML + "<target>_new</target>";
            sbXML=sbXML + "<alt>americanex</alt>";
            sbXML=sbXML + "<imageURL><![CDATA[http://localhost/alideshow/images/brief-comments.jpg]]></imageURL>";
            sbXML=sbXML + "</site>";

            sbXML=sbXML + "<site>";
            sbXML=sbXML + "<url><![CDATA[http://localhost/alideshow/images/brief-details.jpg]]></url>";
            sbXML=sbXML + "<target>_new</target>";
            sbXML=sbXML + "<alt>discover</alt>";
            sbXML=sbXML + "<imageURL><![CDATA[http://localhost/alideshow/images/brief-details.jpg]]></imageURL>";
            sbXML=sbXML + "</site>";
            
            sbXML=sbXML + "</sites>";
            return sbXML;
        }


    Thanks,
    Abdul Javed Khan

  • Abdul Javed Khan

    10/25/2009 6:32:19 PM |

    Sorry for duplicate post.

    Thanks,
    Abdul Javed Khan

  • bryian

    10/26/2009 5:45:03 PM |

    Abdul,

    Sorry, I don't think that is possible at the moment. The JavaScript is expecting a link to the XML file location. The variable name "XMLSource" is kind of misleading it should be XMLPath or XMLLocation. Moving forward, I would suggest that you place the content (sbXML) into a XML file, store it somewhere, and assign that XML file location to SlideShow1.XMLSource dynamically.

    Thanks,
    Bryian Tan

  • Denis Gilbert

    11/9/2009 12:04:21 PM |

    Hi Bryian,

       I am running in conflict between lightbox and jQuery. Actually the div are not rendered. LightBox, prototype and scriptaculous js are loaded in my head section (directly in my master page). I am using it in different pages maintly to popup nicely some images.

       I followed your implementation with the LoadJScript() method to load JQuery. I noticed on the web the  jQuery.noConflict(); but I am not sure how to use it with your implementation.

    Thanks in advance
    Denis

  • Forex Trading

    11/10/2009 3:56:37 PM |

    Thanks for all the codes it was very helpful, keep them coming.

    Regards
    -ForexPro

  • camera shops sydney

    11/11/2009 12:45:49 AM |

    It’s hard to find knowledgeable people on this topic, but you sound like you know what you’re talking about! Thanks

  • Jason Stevens

    11/12/2009 8:13:36 PM |

    The codes in xml are fantastic. I have been researching this subject a lot lately and discovered your blog from a google search. Excellent information.

  • bryian

    11/13/2009 1:52:36 PM |

    Denis,

    Do you know which version of JQuery lib lightbox is using?

    Thanks,
    Bryian Tan

  • Denis Gilbert

    11/14/2009 5:27:07 PM |

    Good day Bryian,

       JQuery is jquery-1.3.2.min and lightbox is 2.04. I don't think this is a conflict now. After I have comment-out lightbox for test, I got a javascript error.

      Error is in this section of simplegallery.js:    addnavpanel: function(setting) {
    with this line:

            setting.$navpanel = $('<div class="navpanellayer"></div>')
          .css({ position: 'absolute', width: '100%', height: setting.panelheight, left: 0, top: setting.dimensions[1], font: simpleGallery_navpanel.panel.fontStyle, zIndex: '1001' })
          .appendTo(setting.$wrapperdiv)

    I am using IE 8. I went in debug in VS 2008 and I dont see $navpanel in the setting object.

    Any Idea ?

  • bryian

    11/16/2009 8:05:51 AM |

    Denis,

    What in the error message? Can you provide a link to your website?

    Thanks,
    Bryian Tan

  • Christian Jewelry

    11/17/2009 7:21:11 AM |

    I always use absolute links, when i use relative, i made a change in structure and had all kinds of issues, wont do that again.

  • Denis Gilbert

    11/19/2009 2:10:20 PM |

    Hi Bryian,

      The message is: Microsoft JScript execution error: This object is not managed on this property or this method.

    If I am trying to inspect: setting.$navpanel the debugger say it is undefined

    This part of my site is not in production. I cannot deploy elsewhere to show you the error directly. Here is the link if you want to see it without your code: www.rch.ca

    Denis

  • Denis Gilbert

    11/19/2009 2:34:30 PM |

    Hi Bryian,

        I made it work!  I probably did not use jQuery.noConflict() correctly. So I am back to the previous problem where I had a conflict with prototype.js Can you provide a version of simpleQuery.js and the void CreateScript() method that will not be in conflict ? From my understanding, I need to change all $ by JQuery but I am not quite sure how to do it properly.

    Denis

  • Free iPhon

    11/20/2009 6:28:27 AM |

    Thanlks for this

  • bryian

    11/20/2009 9:49:00 PM |

    Denis,

    Can you post your code somewhere so I can look into it?

    Thanks,
    Bryian Tan

  • kim

    11/23/2009 11:14:51 PM |

    Intimately, the post is in reality the greatest on this worthy topic. I fit in with your conclusions and will thirstily look forward to your coming updates. Just saying thanks will not just be adequate, for the extraordinary clarity in your writing. I will immediately grab your rss feed to stay abreast of any updates. Authentic work and much success in your business efforts!

  • Accounting Software

    11/24/2009 8:40:56 PM |

    Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that.

  • SEO

    11/26/2009 9:50:13 PM |

    Really appreciate this post. It’s hard to sort the good from the bad sometimes, but I think you’ve nailed it!

  • learn poker

    11/27/2009 6:23:46 AM |

    Appreciate the info, it’s good to know.

  • backlinks

    11/29/2009 11:01:57 PM |

    Thanks very much for the information. I have been searching for this for awhile with Google and it has been a real chore.


  • Mens Jewelry

    12/2/2009 8:57:34 AM |

    I keep getting a dll error every time i try to do this, Does anyone know if the xml needs to be saved a specific way?

  • 35mm slide scanners

    12/4/2009 11:08:37 AM |

    thx for the code, good you added the screenshots otherwise i wouldn't have understand!

    greetz

    Nick

  • diets that work

    12/5/2009 2:09:50 AM |

    I have been spending two hours researching this tonight, and I think you just gave me the answers I need. Thanks Bryian!

  • IPV6 Networking

    12/5/2009 2:48:36 PM |

    wow its amazing how easy this is to use and how powerful it is.. thanks for the post Smile

  • Indian Astrology

    12/9/2009 11:35:07 PM |

    Very simply in words and in the business, much not so, not so all is simple and easy

  • backlink service

    12/12/2009 9:09:54 PM |


    I've been looking for this information for such a long time.  Thanks for taking the time to write this.Has this been tested by someone else?  Does this really work? I wonder if there's an alternative way to do this. Can I link to this post?

  • used car long island

    12/14/2009 9:19:33 PM |

    The blog was absolutely fantastic! Lots of great information and inspiration, both of which we all need!

  • traslochi intercontinentali

    12/14/2009 11:34:30 PM |

    Hmm, what about ASP NET slideshow Control with jQuery and XML

  • Web Design Horsham

    12/15/2009 8:32:58 PM |

    Thankyou for this tutorial, it came in very useful. Email me if you'd like to see what I've used it for! Smile

  • Web Design Horsham

    12/16/2009 11:55:08 PM |

    A great tutorial, thankyou Smile

  • promotional flash drives

    12/17/2009 10:14:38 AM |

    Useful info. Hope to see more good posts in the future.

  • win roulette

    12/18/2009 2:00:12 AM |

    I use many of these scripts on my sites, they can really give an extra element to the look and feel of your site.

  • Online bachelor degree

    12/20/2009 12:22:37 AM |

    Hello.. I'm first time here.. it look like interesting.. i hope you can blog more about this.. anyway, nice sharing..cheers..

  • Buy To Let Mortgages

    12/24/2009 2:54:09 PM |

    Quite ingenius to control with xml, it is something I have been working on of late but hadn't quite mastered, thank you for the clarification.

  • Lisa Pink

    12/26/2009 1:49:36 AM |

    I have tried other ways but this seems to be the most appropriate, thanks for the info.

  • Accounting Services

    12/26/2009 4:27:36 PM |

    The information given in this post is really helpful. Especially for my accounting software which I generally use for my online accounting services.

  • chat script

    12/26/2009 9:01:48 PM |

    I would like to appreciate the efforts you have made in writing this article and i am hoping the same good work from you in the future as well.

  • camera shop sydney

    12/30/2009 9:43:37 AM |

    Interesting read, thanks for helping keep me busy at work ;)

  • free iphone

    1/1/2010 1:53:51 AM |

    Useful topic to discuss about ASP programming. Thanks!

  • 26 inch rims

    1/1/2010 5:49:39 AM |

    This is by far the easiest way to go about this..

  • Seo Company

    1/1/2010 5:46:04 PM |

    Hi,

    I found this post google reader, Fantastic post, Keep it up.

    Chris.

  • Wendy

    1/1/2010 7:07:54 PM |

    You should really highlight the comments here

  • Billy

    1/3/2010 2:45:54 AM |

    Very cool.  I've been using jquery more and more recently on some of my sites but I'm still a real beginner with it - but the more articles like this I read the closer I am tk really getting my head around it ;)

  • Dent Masters

    1/4/2010 2:51:58 AM |

    It certainly gives me something to think about, I like to see what others are thinking about. I look forward to your next topic. Great Job.

  • Dent Masters

    1/4/2010 2:55:56 AM |

    It certainly gives me something to think about, I like to see what others are thinking about. I look forward to your next topic. Great Job.

  • Drug Rehabs

    1/4/2010 6:11:13 AM |

    Wow. This Blog is truly a gold mine. I will actually try these tips and let you know how they work out! Thanks again mate.

  • Karyn

    1/5/2010 2:45:42 PM |

    That's pretty awesome. I like how when you hover over the image, it makes it easier to see.  It's kind of like what wordpress does, too.

  • car care

    1/5/2010 10:30:53 PM |

    Very cool stuff but unfortunately I'm just a beginner and had to read the post a few times, JQuery and XML are pretty powerful.

  • weight loss menus

    1/6/2010 4:15:15 AM |

    I've been using on it ever since and I must say it helps me a lot. It makes my work easier and better. Thank you.<a href="www.fastestwayweightloss.com/">weight loss menus</a>

  • Puppy Chewing

    1/7/2010 2:48:47 AM |

    Looks really good, and yes i agree, lately i've also been using the jquery library.  So easy to grab the different tags with selectors!

  • Drug Rehabs

    1/7/2010 10:46:43 AM |

    This is a good piece of writing, I was wondering if I could use this write-up on my website, I will link it back to your website though. If this is a problem please let me know and I will take it down right away.

  • associate degree Architecture

    1/8/2010 4:05:25 PM |

    He'll tweet the first line of the story and then the rest is up to you! Just login to your Twitter account (registration is free) to continue the story.

  • das

    1/8/2010 10:15:02 PM |

    ters

  • eBay Coupon Code

    1/9/2010 5:56:56 AM |

    Very well written script. Kudos. Will be using this in the near future.

  • windows registry cleaner

    1/11/2010 9:35:38 PM |

    Thanks for the code. I appreciate it.

  • diets that work

    1/11/2010 11:52:58 PM |

    Thanks for putting this together - this is a great article for those of us with our heads buried in the keyboard all day.

  • fx system report

    1/12/2010 11:25:02 PM |

    Interesting blog, one of a kind.

  • windows registry cleaner

    1/13/2010 8:25:19 PM |

    Thanks for the code. Nobody seems to document their findings anymore. So please keep it up - you're one of the good guys!

  • Top Software Reviews

    1/15/2010 10:37:40 AM |

    Very good information, thank you very much by the article and the quality of your Web site. A greeting from Chile.

  • 1kum

    1/15/2010 10:49:04 AM |

    I will try your scripts.I am care if this scripts using too much system resouce,and ASP like to using very very big system resource

  • Facilities Management jobs

    1/16/2010 12:26:05 AM |

    I recently came across your blog and have been reading along. I don't know what to say except that I have enjoyed reading. Nice blog.I will keep visiting this blog very often.

  • Insurance

    1/17/2010 12:35:18 PM |

    Hmm, I just bought script to do this same function! Wish I had seen this post first...

  • forex trading

    1/17/2010 4:08:48 PM |

    Does anybody here use optionsXpress?  If so, what do you think about their prices?

  • Top Software Reviews

    1/17/2010 9:56:48 PM |

    You have some honest ideas here. It looks like you have done a research on the issue and discovered.Anyway thanks a lot.I think most peoples will agree with your blog.Keep it up.

  • stock options

    1/18/2010 1:38:06 PM |

    Does anybody here use Zecco for options trading?  If so, what do you think about their prices?  Thanks!

  • company outsourcing in Indonesia

    1/19/2010 1:34:06 PM |

  • outsourcing it services in Indonesia

    1/19/2010 4:39:11 PM |

    Reckon I didn't know as much regarding this as I supposed. Great stuff, thanks for posting this.

  • hostgator coupon

    1/19/2010 9:14:38 PM |

    Thanks for the code and screenshots.

  • hostgator coupon

    1/19/2010 9:20:24 PM |

    Thanks for the code and screenshots.I hope you continue writing such great post in future.

  • Übersetzung Englisch Deutsch, Übersetzung Deutsch Englisch

    1/20/2010 3:54:36 AM |

    THANKS GUYS

  • Inomhuslek

    1/20/2010 8:06:59 PM |

    well there are lots of things that we must consider. about this matter the author really know what he is saying and he made this post very useful for others.

  • Mandarin course

    1/21/2010 2:52:06 PM |

    I use it with Vs2005 but it always appear error against your conduct.
    I will post the troubleshot later
    thanks

  • Cremation Urns

    1/23/2010 10:50:48 AM |

    I was trying to access old posts and am getting 404 page not found errors. Anyone else having problems?

  • Novoline

    1/26/2010 2:45:53 PM |

    This is an excellent thought provoking post.

  • How To Get Backlinks

    1/26/2010 7:45:24 PM |

    Adore your blog! I'm pressing the subscribe button right now!

  • 1 night in paris

    1/28/2010 9:38:50 AM |

    Very informative post. Image sliders are a hot thing today

  • John

    1/30/2010 7:09:05 PM |

    I love the way you write information about asp.net slide-shows control.
    I wish you much success with your site. The information is definitely useful.

  • Gareth

    1/30/2010 7:47:21 PM |

    I like the way you write info about asp.net slide-shows control.
    I wish you much success with your blog. The information is certainly useful.

  • Jamie

    1/31/2010 9:01:11 PM |

    Sweet...I'm adding this to my website!

  • Mahen

    2/6/2010 5:41:17 AM |

    http://mahen3d.com  provide innovative solutions for all your business needs, ecommerce web site design, flash website design, website templates, accessible web site design sydney. Mahen3D.com, has been selected to receive The American Association Of Webmasters, "Gold" Award.

  • Danny

    2/6/2010 6:51:48 AM |

    Since some time I recognize that jQuery becomes more and more popular. I the past I wasn't using ad rotator plugin because it was to static. I think I have to take a look on the jQuery solutons.

  • uk business directory

    2/8/2010 4:22:21 PM |

    Cool, I've been waiting for something like this forever.

  • belajar dari nol

    2/8/2010 9:11:37 PM |

    Nice tutorial. thanks for sharing. n_n

  • James Smith

    2/10/2010 7:07:03 AM |

    I admit, I have not been on this webpage in a long time... however it was another joy to see It is such an important topic and ignored by so many, even professionals. I thank you to help making people more aware of possible issues.  Good stuff as usual...

  • Christopher

    2/20/2010 10:24:53 PM |

    Worthy thread with excellent comments on asp.net slide-shows control.
    I want to read more but I need to go back to uni!

  • David Alexander

    3/18/2010 11:54:17 PM |

    You are a very wise individual!

  • Steve Krenz

    4/12/2010 7:17:58 PM |

    A lot of content in this, really awesome!

  • aldo

    6/12/2010 11:43:30 PM |

    Hola Bryian excelente articulo, mi pregunta es como haría para enlazarlo a un dataset??

  • aldo

    6/13/2010 12:57:41 AM |

    hi, excellent article, my question would be how I do to connect the UserControl to a dataset?

  • San

    8/27/2010 12:44:09 AM |

    Thank you so much for this tutorial!

  • Hire PHP Developers

    9/2/2010 1:11:30 PM |

    Really nice info on ASP.Net slideshow control.

    Thanks

  • กล้องโลโม่

    11/13/2010 1:08:16 AM |

    Thanks for your post, info and hard work.

  • Restaurant Software

    12/17/2010 9:15:22 AM |

    Hey!  I went to the link according to the link basis of Jquery in slidshow with XML. It was such a nice tutorial. I have no words to explain.

  • hgh

    12/17/2010 12:06:58 PM |

    Thanks for the tutorial. It is much appreciated.

  • san diego computer repair

    12/18/2010 11:55:10 AM |

    this is a very useful post.

  • boby

    12/19/2010 4:37:53 PM |

    Nice post.. Cograts

  • ביטוח רכב

    1/4/2011 4:18:46 PM |

    thanks great post
    ביטוח רכב,ביטוחים

  • Seo Nepal

    1/11/2011 2:51:25 AM |

    ASP .net slide show is really prefect form my web site

  • lita

    1/12/2011 10:46:58 PM |

    Hello.. I'm first time here.. it look like interesting.. i hope you can blog more about this.. anyway, nice sharing..cheers..

  • live premiership football

    1/13/2011 7:05:19 PM |

    Excellent post thanks

  • ucf apartments

    1/27/2011 8:42:21 AM |

    Useful tutorial, i like it. keep it up.

Pingbacks and trackbacks (4)+

Add comment

Loading