ItemUpdated UpdateCommand ItemCommand not firing

23 posts, 0 answers
  1. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 28 Aug 2008 Link to this post

    Hi

    I know there is plenty of posts with the UpdateCommand not firing, but I am at a loss why these event(s) do not get called after clicking on the update link in the grid. My grid is dynamically built, and once running, it has all the features that I requre, however, when clicking on the edit link the approriate event gets called, so far so good, but when I click on the update link none of these events fire.

    I handle NeedDataSource and I have tried various combinations of viewstate but to no avail.

    Can you advise, thanks

    P

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

    BuildListMembersGrid()

    End Sub

    Private Sub BuildListMembersGrid()

    Dim IsEventList As Boolean = False

    Dim UDFS As List(Of CMXModel.UDF)

    Dim BaseListName As String

    If Me.Request.Cookies("BaseListInfo") IsNot Nothing Then

    BaseListName =

    Me.Request.Cookies("BaseListInfo").Value.Split("~")(1)

    IsEventList =

    Me.Request.Cookies("BaseListInfo").Value.Split("~")(0) = "Event"

    Using cx As New CMXEntities

    UDFS = cx.GetUDFS(BaseListName)

    End Using

    Me.ViewState("CurrentBaseListName") = BaseListName

    Else

    Exit Sub

    End If

    Dim GridBoundColumn As GridBoundColumn

    Dim GridCheckBoxColumn As GridCheckBoxColumn

    Dim grdBaseListMembers As New RadGrid

    grdBaseListMembers.ID =

    "grdBaseListMembers"

    PlaceHolder1.Controls.Clear()

    PlaceHolder1.Controls.Add(grdBaseListMembers)

    grdBaseListMembers.Skin =

    "Office2007"

    grdBaseListMembers.Width = Unit.Percentage(100)

    grdBaseListMembers.Height = Unit.Percentage(100)

    grdBaseListMembers.EnableViewState =

    True

    grdBaseListMembers.AllowPaging =

    True

    grdBaseListMembers.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric

    grdBaseListMembers.AutoGenerateColumns =

    False

    grdBaseListMembers.AllowMultiRowSelection =

    True

    grdBaseListMembers.AllowAutomaticUpdates =

    False

    grdBaseListMembers.AllowAutomaticInserts =

    False

    grdBaseListMembers.AllowAutomaticDeletes =

    False

     

    grdBaseListMembers.MasterTableView.PageSize = 10

    grdBaseListMembers.MasterTableView.Width = Unit.Percentage(100)

    grdBaseListMembers.MasterTableView.DataKeyNames =

    New String() {"BaseListID", "BaseContactID", "BaseListMemberID"}

    grdBaseListMembers.MasterTableView.EditMode = GridEditMode.InPlace

    grdBaseListMembers.MasterTableView.EnableViewState =

    True

    grdBaseListMembers.MasterTableView.AllowAutomaticUpdates =

    False

    grdBaseListMembers.MasterTableView.AllowAutomaticInserts =

    False

    grdBaseListMembers.MasterTableView.AllowAutomaticDeletes =

    False

    grdBaseListMembers.MasterTableView.EnableViewState =

    True

     

    grdBaseListMembers.ClientSettings.Selecting.AllowRowSelect =

    True

    grdBaseListMembers.ClientSettings.EnablePostBackOnRowClick =

    True

     

     

    Dim SelectCommandColumn As New GridClientSelectColumn

    grdBaseListMembers.MasterTableView.Columns.Add(SelectCommandColumn)

    SelectCommandColumn.ButtonType = ButtonColumnType.LinkButton

    SelectCommandColumn.Text =

    "Select"

    Dim EditCommandColumn As New GridEditCommandColumn

    grdBaseListMembers.MasterTableView.Columns.Add(EditCommandColumn)

    EditCommandColumn.ButtonType = ButtonColumnType.LinkButton

    EditCommandColumn.UniqueName =

    "Edit"

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "ContactName"

    GridBoundColumn.UniqueName =

    "ContactName"

    GridBoundColumn.HeaderText =

    "Contact Name"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.ReadOnly =

    True

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "OrganisationName"

    GridBoundColumn.UniqueName =

    "OrganisationName"

    GridBoundColumn.HeaderText =

    "Org Name"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.ReadOnly =

    True

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "OfficeName"

    GridBoundColumn.UniqueName =

    "OfficeName"

    GridBoundColumn.HeaderText =

    "Office Name"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.ReadOnly =

    True

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "Phone"

    GridBoundColumn.UniqueName =

    "Phone"

    GridBoundColumn.HeaderText =

    "Phone"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.ReadOnly =

    True

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    If IsEventList Then

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "HostName"

    GridBoundColumn.UniqueName =

    "HostName"

    GridBoundColumn.HeaderText =

    "Host"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    GridCheckBoxColumn =

    New GridCheckBoxColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridCheckBoxColumn)

    GridCheckBoxColumn.DataField =

    "Invited"

    GridCheckBoxColumn.UniqueName =

    "Invited"

    GridCheckBoxColumn.HeaderText =

    "Invited"

    GridCheckBoxColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center

    GridCheckBoxColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridCheckBoxColumn.DataType = Type.GetType(

    "System.Boolean")

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "InviteStatus"

    GridBoundColumn.UniqueName =

    "InviteStatus"

    GridBoundColumn.HeaderText =

    "Invite Status"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    Else

    GridBoundColumn =

    New GridBoundColumn

    grdBaseListMembers.MasterTableView.Columns.Add(GridBoundColumn)

    GridBoundColumn.DataField =

    "EMail"

    GridBoundColumn.UniqueName =

    "EMail"

    GridBoundColumn.HeaderText =

    "EMail"

    GridBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    GridBoundColumn.ReadOnly =

    True

    GridBoundColumn.DataType = Type.GetType(

    "System.String")

    End If

    '' Loop through the udfs (if any) and append them to the grid. Note these columns are required to

    '' be editable, therefore attach the custom Edit Template Column

    For Each UDF As CMXModel.UDF In UDFS

    Dim ListValue As New ArrayList

    Dim gtc As New GridTemplateColumn

    gtc.ItemTemplate =

    New UDFValueItemTemplateColumn(udf, gtc)

    gtc.EditItemTemplate =

    New UDFValueEditTemplateColumn(UDF, gtc)

    gtc.HeaderTemplate =

    New UDFValueHeaderTemplateColumn(UDF, gtc)

    gtc.Resizable =

    False

    gtc.UniqueName =

    "GridTemplateColumnUDF~" & UDF.Name

    gtc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center

    grdBaseListMembers.MasterTableView.Columns.Add(gtc)

    Next

    AddHandler grdBaseListMembers.ItemDataBound, AddressOf BaseListMembers_ItemDataBound

    AddHandler grdBaseListMembers.NeedDataSource, AddressOf BaseListMembers_NeedDataSource

    AddHandler grdBaseListMembers.ItemCommand, AddressOf BaseListMembers_ItemCommand

    ' AddHandler grdBaseListMembers.EditCommand, AddressOf BaseListMembers_EditCommand

    'AddHandler grdBaseListMembers.ItemEvent, AddressOf BaseListMembers_ItemEvent

    'AddHandler grdBaseListMembers.ItemCreated, AddressOf BaseListMembers_ItemCreated

    AddHandler grdBaseListMembers.ItemUpdated, AddressOf BaseListMembers_ItemUpdated

    AddHandler grdBaseListMembers.UpdateCommand, AddressOf BaseListMembers_UpdateCommand

    End Sub

  2. Vlad
    Admin
    Vlad avatar
    11100 posts

    Posted 28 Aug 2008 Link to this post

    Hi Paul,

    You should not create the grid in NeedDataSource event handler. Please visit these examples for more info:
    http://demos.telerik.com/aspnet/Prometheus/Grid/Examples/Hierarchy/DefiningStructure/DefaultCS.aspx
    http://demos.telerik.com/aspnet/Prometheus/Grid/Examples/Programming/GroupBy/DefaultCS.aspx

    Regards,
    Vlad
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 28 Aug 2008 Link to this post

    Thanks for the response,

    I did not create the grid in the NeedDataSource event handler I created the grid in the Page Init, please view supplied code

    Thanks

    P
  5. Vlad
    Admin
    Vlad avatar
    11100 posts

    Posted 28 Aug 2008 Link to this post

    Hello Paul,

    Sorry for this miscommunication. Can you send us via support ticket small example which demonstrates this behavior? I will gladly help you.

    Sincerely yours,
    Vlad
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  6. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 28 Aug 2008 Link to this post

    The application is very big, and it will take me some considerable time to strip it down to give to you as an example. I thought you would might spot something obvious or give me some pointers.

    The grid I have created dynamically works fine in every respect, this includes custom templated colums for the header, Item and Edit, simply, the grid does not receive the ‘update’ event after an edit.

    Best

    P

  7. Sean
    Sean  avatar
    54 posts
    Member since:
    Apr 2008

    Posted 28 Aug 2008 Link to this post

    Hi Paul,

    Where is your code for updates held? In this case, I think there needs to be a call in the ItemCoimmand method that determines the type of event. From there, pass off to the Update, Delete, etc..

    You didn't define the handlers in the code given, but if your code is in the itemupdated, it woun't reach it. The grid only knows that you clicked a button in the EditCommandColumn; it doesn't know WHAT happened until it enters the ItemCommand event handler.

    Also, do you need to explicitly declare AllowAutomaticUpdates? I know that they deal with object datasources, but perhaps setting them False is causing an issue?

    Thanks for listening.

    Sean
    Electronic Arts, Orlando FL
  8. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 29 Aug 2008 Link to this post

    Thanks Sean for your time, I really appreciate it.

     

    In the code supplied, I do hook up to the ItemCommand Event, I have also tried various combinations of setting the AllowAutomaticUpdates and the viewstate, but still, this event does not get fired on an update click.

     

    The ItemCommand Event does fire on an edit click but not on a update click, I am still at a loss why this event does not fire.

     

    Thanks


    P

  9. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 29 Aug 2008 Link to this post

    Hi,

    Just an update, how are you getting on with this issue

    P
  10. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 02 Sep 2008 Link to this post

    Guys


    This is becoming a major issue for me, can anyone help?



    Ken
  11. Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 02 Sep 2008 Link to this post

    Hello Paul,

    Can you verify that you instantiate your grid programmatically in par with the concepts listed in this article from the documentation? Additionally, verify that you use advanced binding with NeedDataSource handling as explained here.

    The information provided so far is not sufficient to pinpoint the source of the problem, therefore the best means to progress in our investigation is to send a stripped working version of your project, exhibiting the issue, attached to formal ticket. We will test it locally and will advice you further.

    Best regards,
    Stephen
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  12. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 02 Sep 2008 Link to this post

    Thanks for your help.

    If I send you a stripped down project, what does entail? My project is run over the ADO Entity Framework. I suppose I will have to send you the model and the DB.


    However, may I suggest an easier alternative:- Can you send me a simple dynamic grid which demonstrates the edit and Update event in action

    Thanks P
  13. Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 03 Sep 2008 Link to this post

    Hi Paul,

    You will find the requested example attached to this forum post. Note that using a different data layer should not make a difference as long as you assign the data source returned from the DAL inside the NeedDataSource handler of the grid.

    Best regards,
    Stephen
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  14. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Thank you for your time I really appreciate the attentiveness.

    The sample that you sent me , does not compile. I managed to compile the app by adding a RadScriptManager to the designer surface, then from its context sensitive menu add the WebResource.axd

    That Done....

    When the app was running, I edited a value (contact name), then clicked the update button, the Update did not take place, the value was unchanged.

    This is exactly the same behaviour that I am experiencing (why I raised this issue)

    mmm….

    I am using Visual Studio 2008 SP1, .NET Framework SP1. The app that you sent me is not at this version.

    Do you want me to send you the demo app that you gave me re-configured for this environment.

    Hope this Helps

    P

  15. Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 03 Sep 2008 Link to this post

    Hello Paul,

    The actual update operation is not implemented in the example, however if you attach the UpdateCommand/ItemCommand events of the grid they should be raised when you click the update button.

    Can you please verify that on your machine? If you would like to implement manual data editing for your grid control, review the following online demos which demonstrate possible approaches:

    http://demos.telerik.com/ASPNET/Prometheus/Grid/Examples/DataEditing/EditModes/DefaultCS.aspx
    http://demos.telerik.com/ASPNET/Prometheus/Grid/Examples/DataEditing/ExtractValues/DefaultCS.aspx

    Best regards,
    Stephen
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  16. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Thanks Stephen

    I have not been able to get my update event to fire, but what I have noticed between your demo app and my app is the order of events

    Your App :

    ItemCommand -> NeedDataSource

    My App

    NeedDataSource -> ItemCommand

    for both Edit and Update click.

    Does this makes any difference?

    P
  17. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Typo

    Should read 


    Your App :

    ItemCommand -> NeedDataSource

    My App

    NeedDataSource -> ItemCommand

    for the Edit click.

    Does this makes any difference?
  18. Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 03 Sep 2008 Link to this post

    Hello Paul,

    The proper sequence of events raised should be:

    ItemCommand -> NeedDataSource

    as listed in this topic from the online documentation. Is it possible that by some reason you disabled the viewstate for your grid instance? This might be the reason for the unexpected behavior you observed.

    Best regards,
    Stephen
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  19. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Hi Stephen

    I do not turn off the viewstate for the dynamic grid, and just to make sure I have expliticly Enabled the viewstate

    Dim grdBaseListMembers As New RadGrid

    grdBaseListMembers.ID =

    "grdBaseListMembers1"

     

    grdBaseListMembers.EnableViewState =

    True

    grdBaseListMembers.Skin =

    "Office2007"

    grdBaseListMembers.Width = Unit.Percentage(100)

    grdBaseListMembers.Height = Unit.Percentage(100)

    grdBaseListMembers.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric

    grdBaseListMembers.MasterTableView.AutoGenerateColumns =

    False

    grdBaseListMembers.MasterTableView.PageSize = 10

    grdBaseListMembers.MasterTableView.AllowPaging =

    True

    grdBaseListMembers.MasterTableView.Width = Unit.Percentage(100)

    grdBaseListMembers.MasterTableView.DataKeyNames =

    New String() {"BaseListID", "BaseContactID", "BaseListMemberID"}

    grdBaseListMembers.MasterTableView.EditMode = GridEditMode.InPlace

    grdBaseListMembers.ClientSettings.Selecting.AllowRowSelect =

    True

    grdBaseListMembers.ClientSettings.EnablePostBackOnRowClick =

    True

    AddHandler grdBaseListMembers.NeedDataSource, AddressOf BaseListMembers_NeedDataSource

    AddHandler grdBaseListMembers.ItemCommand, AddressOf BaseListMembers_ItemCommand

    AddHandler grdBaseListMembers.ItemDataBound, AddressOf BaseListMembers_ItemDataBound

    AddHandler grdBaseListMembers.ItemUpdated, AddressOf BaseListMembers_ItemUpdated

    AddHandler grdBaseListMembers.UpdateCommand, AddressOf BaseListMembers_UpdateCommand

    P

  20. Sebastian
    Admin
    Sebastian avatar
    9934 posts

    Posted 03 Sep 2008 Link to this post

    Hi Paul,

    I am running out of ideas here. To progress in our investigation, can you modify the sample project I prepared for you in order to make the abnormality surface and send it back attached in a standard support ticket? Thus I will do my best to advice you further/provide a solution for your case.

    Best regards,
    Stephen
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.
  21. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    OK, I agree, will do


    P
  22. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Hi Stephen

    I have manged to get th update click to work along with the correct order of events (but unfortunatly I do not know why)

    I have moved the placeholder where my (dynamic grid resides) from one part of the page to another location. The PlaceHolder was in a RadPane and I moved it to a RadSlidingPane, both of these panes are in a RadSplitter,

    And it all burst into life...


  23. Gary
    Gary avatar
    57 posts
    Member since:
    Jun 2008

    Posted 03 Sep 2008 Link to this post

    Hi-

    I ran into somewhat of the same issue, I was setting up a grid in a control used in another control.  The grid is within a RadPanel, same issue, no OnUpdateCommand event, although the OnDeleteCommand works.

    Gary
  24. Paul Gallen
    Paul Gallen avatar
    156 posts
    Member since:
    Jun 2008

    Posted 04 Sep 2008 Link to this post

    Hi Gary

    I think the radGrid has some sort of issues with this layout configuration. I have tried all of the telerik recommendations regarding the 'dynamic grid', but to no avail. I am going to have to redesign my web page so I can get the functionality I require .i.e. Sinking the ItemCommand 'Update' event.


    Paul
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017