Keeping 2 user controls of the same class synced

Discussion in 'ASP .Net' started by yashgt@gmail.com, Dec 15, 2006.

  1. Guest

    On a page, I need to show one item at a time. The top of the page has a
    Previous-Next control, followed by the item being shown, followed by
    another Previous-Next control. I have created a P-N user control and
    customized it to fire an event, OnChange, when a Previous or Next
    button is clicked, which is handled by the containing page. The handler
    takes the ID of the current item from the eventargs and displays the
    proper item with the ID in the center. But In addition, I want the
    other P-N control also to reach the same state as the one that fired
    the event. So the CurrentID property of both the P-N controls would be
    the same.
    Any design suggestions?

    Thanks,
    Yash
    , Dec 15, 2006
    #1
    1. Advertising

  2. Hi,

    wrote:
    > On a page, I need to show one item at a time. The top of the page has a
    > Previous-Next control, followed by the item being shown, followed by
    > another Previous-Next control. I have created a P-N user control and
    > customized it to fire an event, OnChange, when a Previous or Next
    > button is clicked, which is handled by the containing page. The handler
    > takes the ID of the current item from the eventargs and displays the
    > proper item with the ID in the center. But In addition, I want the
    > other P-N control also to reach the same state as the one that fired
    > the event. So the CurrentID property of both the P-N controls would be
    > the same.
    > Any design suggestions?
    >
    > Thanks,
    > Yash


    Since your user control fires an event OnChange, have the other user
    control register that very event. Of course, that means that the target
    user control must have knowledge of the event's definition, but that's
    the case anyway since both are of the same class (as per your subject line).

    Other ways would be using a listener pattern, having the target UC
    register at the source UC for changes. When a change occurs, the source
    UC loops through all the registered listeners and calls a method on
    them. The method is defined in an interface IListener (or whatever ;-),
    which introduces only a loose relationship between the two user controls.

    HTH,
    Laurent
    --
    Laurent Bugnion, GalaSoft
    Software engineering: http://www.galasoft-LB.ch
    PhotoAlbum: http://www.galasoft-LB.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch
    Laurent Bugnion, Dec 15, 2006
    #2
    1. Advertising

  3. > Other ways would be using a listener pattern, having the target UC
    > register at the source UC for changes. When a change occurs, the source UC
    > loops through all the registered listeners and calls a method on


    That's what precisely the multicast-delegates and events are!
    Well, if you publish an event and somebody subscribes to it, it IS the
    listener pattern. You don't need to have IListener. :)


    --
    Happy Hacking,
    Gaurav Vaish | www.mastergaurav.com
    www.edujini-labs.com
    http://eduzine.edujinionline.com
    -----------------------------------------
    Gaurav Vaish \(www.Edujini-Labs.com\), Jan 10, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John
    Replies:
    0
    Views:
    350
  2. Replies:
    2
    Views:
    390
    =?ISO-8859-1?Q?G=F6ran_Andersson?=
    May 4, 2006
  3. Replies:
    3
    Views:
    478
    =?Utf-8?B?UGV0ZXIgQnJvbWJlcmcgW0MjIE1WUF0=?=
    May 16, 2006
  4. Keeping 2 user controls of the same class synced

    , Dec 15, 2006, in forum: ASP .Net Building Controls
    Replies:
    1
    Views:
    104
    Laurent Bugnion
    Dec 15, 2006
  5. Replies:
    1
    Views:
    115
    Laurent Bugnion
    Dec 15, 2006
Loading...

Share This Page