AddHandler to Dropdownlist in ItemDataBound Doesnt work !!

Discussion in 'ASP .Net' started by =?Utf-8?B?Q2xvdWRz?=, Aug 29, 2004.

  1. Hi !
    How do I add the dynamic event handler for a dropdownlist present in the
    itemtemplate of a datalist !!
    I am doing it in the itemdatabound event of the datalist but it doesnt
    work... I am also setting the autopostback property to true for the dropdown
    list and it works but the handler doesnt get invoked at runtime...
    I have to do it in itemdatabound becaz whether to add the handler or not is
    driven based on the information which i have in datasource...

    Whats happening to the handler ??

    Regards
    --
    Clouds
     
    =?Utf-8?B?Q2xvdWRz?=, Aug 29, 2004
    #1
    1. Advertising

  2. =?Utf-8?B?Q2xvdWRz?=

    Teemu Keiski Guest

    Hi,

    you need to wire the event handler in ItemCreated because event handlers
    need to be assigned on every request. ItemDataBound runs only when control
    is databound, but ItemCreated runs also on postback.

    --
    Teemu Keiski
    MCP, Microsoft MVP (ASP.NET), AspInsiders member
    ASP.NET Forum Moderator, AspAlliance Columnist
    http://blogs.aspadvice.com/joteke



    "Clouds" <> wrote in message
    news:...
    > Hi !
    > How do I add the dynamic event handler for a dropdownlist present in the
    > itemtemplate of a datalist !!
    > I am doing it in the itemdatabound event of the datalist but it doesnt
    > work... I am also setting the autopostback property to true for the

    dropdown
    > list and it works but the handler doesnt get invoked at runtime...
    > I have to do it in itemdatabound becaz whether to add the handler or not

    is
    > driven based on the information which i have in datasource...
    >
    > Whats happening to the handler ??
    >
    > Regards
    > --
    > Clouds
     
    Teemu Keiski, Aug 29, 2004
    #2
    1. Advertising

  3. =?Utf-8?B?Q2xvdWRz?=

    Karl Guest

    ItemDataBound isn't invoked on postback because the control isn't databound
    back to the source, the viewstate is used. If you put a breakpoint/trace in
    ItemDataBound you'll see it isn't called. handlers added dynamically don't
    preserve their state on postback, so you need to add them somewhere around
    the page_load event (not exactly sure what's the latest you can get away
    with).

    You can either put the code in the ItemCreated or in Page_Load if
    Page.IsPostBack is true.

    Private Sub List_ItemDataBound(ByVal sender As Object, ByVal e As
    DataListItemEventArgs) Handles list.ItemDataBound
    Dim ddl As DropDownList = CType(e.Item.FindControl("ddl"),
    DropDownList)
    AddHandler ddl.SelectedIndexChanged, AddressOf ddl_Changed
    End Sub

    Sub Page_Load...
    IF Page.IsPostBack = true THEN
    For Each item As DataListItem In list.Items
    Dim ddl As DropDownList = CType(item.FindControl("ddl"), DropDownList)
    AddHandler ddl.SelectedIndexChanged, AddressOf ddl_Changed
    Next
    end if
    end sub

    I realize that whether to bind or not is based on your datasource, but
    again, you don't have access to the data source on postback. What I would
    recommend is that you use a hidden form field <input type="hidden"
    runat="server" id="doPostback" /> and on the ItemDataBound, you store true
    or false in there based on whatever rule you have. Then on postback, using
    either method above, get that field, check if the value is true or false, if
    true, hook up the handler.

    Karl




    "Clouds" <> wrote in message
    news:...
    > Hi !
    > How do I add the dynamic event handler for a dropdownlist present in the
    > itemtemplate of a datalist !!
    > I am doing it in the itemdatabound event of the datalist but it doesnt
    > work... I am also setting the autopostback property to true for the

    dropdown
    > list and it works but the handler doesnt get invoked at runtime...
    > I have to do it in itemdatabound becaz whether to add the handler or not

    is
    > driven based on the information which i have in datasource...
    >
    > Whats happening to the handler ??
    >
    > Regards
    > --
    > Clouds
     
    Karl, Aug 29, 2004
    #3
  4. =?Utf-8?B?Q2xvdWRz?=

    Scott Allen Guest

    Hi Clouds:

    Consider setting the event handler in the ASPX markup.

    For example, I can set the event handler for a DropDownList inside a
    DataGrid with the following:

    <asp:DataGrid id="DataGrid1" runat="server"
    AutoGenerateColumns="False"
    OnItemDataBound="DataGrid1_ItemDataBound">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:DropDownList id="ItemDropDown"
    OnSelectedIndexChanged="DropDown_SelectedIndexChanged"
    AutoPostBack="True" Runat="server">
    </asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>

    I'm not sure if this meets your definition of dynamic, but if all the
    lists call the same event handler method it should work fine.

    HTH,

    --
    Scott
    http://www.OdeToCode.com



    On Sun, 29 Aug 2004 04:03:06 -0700, Clouds
    <> wrote:

    >Hi !
    >How do I add the dynamic event handler for a dropdownlist present in the
    >itemtemplate of a datalist !!
    >I am doing it in the itemdatabound event of the datalist but it doesnt
    >work... I am also setting the autopostback property to true for the dropdown
    >list and it works but the handler doesnt get invoked at runtime...
    >I have to do it in itemdatabound becaz whether to add the handler or not is
    >driven based on the information which i have in datasource...
    >
    >Whats happening to the handler ??
    >
    >Regards
     
    Scott Allen, Aug 30, 2004
    #4
    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. Bjorn Sagbakken

    AddHandler in C# doesn't work

    Bjorn Sagbakken, Oct 28, 2007, in forum: ASP .Net
    Replies:
    5
    Views:
    5,952
    Cowboy \(Gregory A. Beamer\)
    Oct 29, 2007
  2. Janaka Perera
    Replies:
    0
    Views:
    1,137
    Janaka Perera
    Oct 29, 2007
  3. Replies:
    3
    Views:
    439
    alex23
    May 27, 2008
  4. news.microsoft.com

    AddHandler doesn't work in Page_PreRender()

    news.microsoft.com, Oct 21, 2004, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    206
    news.microsoft.com
    Oct 21, 2004
  5. SimonM

    AddHandler doesn't seem to work.

    SimonM, Jun 2, 2005, in forum: ASP .Net Web Controls
    Replies:
    3
    Views:
    227
    Teemu Keiski
    Jun 4, 2005
Loading...

Share This Page