Implementing postback functionality in custom control

Discussion in 'ASP .Net Building Controls' started by Showjumper, Mar 5, 2005.

  1. Showjumper

    Showjumper Guest

    Here is my situation. I first made a custom composite control (consisting of
    a textbox and button) that does a whois lookup based on the domain name
    entered in the textbox. Getting the lookup sub to fire in the composite
    version is not a problem b/c all i do is add AddHandler LookUp.Click,
    AddressOf DoLookUp.

    Now i have i attempted to make a rendered version of the control in which i
    directly render the html for the textbox and button. I have been over the
    documentation for the IPostBackDataHandler, IPostBackEventHandler interfaces
    and their associated functions. I have also consulted my books on server
    control building. All the examples i have seen show how to add postback
    functionality to simple controls, i.e a custom button control for instance
    which then has its event called from the codebehing of the aspx page. What i
    want to do is add postback functioality to the control and then with that
    call the dolookup sub. Can someone walk me thru? I can post code if needed.
    Or if my explanation is not clear enoughi can explain further. How do i
    trigger the sub in the custom control from the rendered button? I am using
    vbnet BTW. The more detailed explanation the better since i have banging my
    head against the wall for sometime (not literally tho'). Any and all help is
    Showjumper, Mar 5, 2005
    1. Advertisements

  2. Showjumper

    Showjumper Guest

    I think i actually got it. What i did was move the lookup code to the
    raisepostbackevent such that
    If eventArgument = "DoLookup" Then
    'do the lookup
    end if

    And for the submit button
    wr.AddAttribute("onclick", Page.GetPostBackEventReference(Me, "DoLookup"))

    Can some one comment on doing this way? Is this right? Thx...

    Showjumper, Mar 6, 2005
    1. Advertisements

  3. Showjumper

    Wilco Bauwer Guest

    Read instead. You
    can also take a look at the source code of some of the web controls on
    my website.

    The way you get a postback event reference looks ok, but you should
    also register your control as a control which handles postbacks, and
    implement the correct interface for handling postbacks.
    Wilco Bauwer, Mar 6, 2005
  4. Showjumper

    Showjumper Guest

    The way you get a postback event reference looks ok, but you should also
    register your control as a control which handles postbacks, and implement
    the correct interface for handling postbacks.

    By this i assume you mean implementing IPostBackDataHandler,
    IPostBackEventHandler. If that is the case i have done so. What i have is
    this and the submit button with the onclick attribute and eventargument that
    mentioned previously. Can you comment or someone else can? text is the
    domain name entered into the textbox and this value is maintained across
    postbacks and the lookup code fires. I just want to be sure i am doing this
    right. I dont htink i need to do anything in raisepostdatachanged since the
    textbox value doesnt change across postbacks. Thx Ashok

    Public Function LoadPostData(ByVal PostDataKey As String, ByVal Values As
    NameValueCollection) As Boolean _
    Implements IPostBackDataHandler.LoadPostData
    text = Values(Me.UniqueID)
    Return True
    End Function

    Public Sub RaisePostDataChangedEvent() _
    Implements IPostBackDataHandler.RaisePostDataChangedEvent
    ' Dont need to do anything here
    End Sub

    Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements
    If eventArgument = "DoLookup" Then
    'Do the lookup = lookup code fires
    End If
    End Sub
    Showjumper, Mar 6, 2005
  5. Showjumper

    Wilco Bauwer Guest

    Sorry, I did not read your initial posting and assumed several things.

    The way you are doing it looks about right. However, I would raise an
    event, instead of handling the "event" yourself. You probably want to
    handle that event outside your class (e.g. let the client of your
    control do the stuff), unless it really is part of your control's
    Wilco Bauwer, Mar 6, 2005
  6. Showjumper

    Showjumper Guest

    Appreciate your input. I think for now i will leave it the way it is for
    now since the lookup is the crux of the control.
    Showjumper, Mar 6, 2005
    1. Advertisements

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.