asp.nettelerikrad-controlsradtreelist

How to find the DataKeyValue from RadTreeList UpdateCommand?


How on earth do I find the DataKey when I'm doing an update? I've tried everything...

Private Sub rtlAccounts_UpdateCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.TreeListCommandEventArgs) Handles rtlAccounts.UpdateCommand
    Dim txtAccountDescription As RadTextBox = TryCast(e.Item.FindControl("txtAccountDescription"), RadTextBox)
    Dim txtAdminName As RadTextBox = TryCast(e.Item.FindControl("txtAdminName"), RadTextBox)
    Dim txtAdminEmail As RadTextBox = TryCast(e.Item.FindControl("txtAdminEmail"), RadTextBox)
    Dim rcbStatus As RadComboBox = TryCast(e.Item.FindControl("rcbStatus"), RadComboBox)
    Dim rntDocRetention As RadNumericTextBox = TryCast(e.Item.FindControl("rntDocRetention"), RadNumericTextBox)

    Dim item As TreeListEditableItem = TryCast(e.Item, TreeListEditableItem)
    Dim MyDataKeyID As String =  'Now what???
End Sub

Also would like to know how to find the ParentDataKeyValue from an InsertCommand and the UpdateCommand as well.


Solution

  • To get the DataKeyValue and the ParentDataKeyValue, change your last two lines to the following:

    Dim editedItem As TreeListEditFormItem = CType(e.Item, TreeListEditFormItem)
    Dim dataKeyValue As String = _
        editedItem.ParentItem.GetDataKeyValue("EmployeeID").ToString()
    Dim parentDataKeyValue As String = _
        editedItem.ParentItem.GetParentDataKeyValue("ReportsTo").ToString()
    

    Per Telerik's documentation, if you are using InPlace edit mode you should cast the TreeListEditableItem to a TreeListDataItem; if you are using EditForms you should cast the TreeListEditableItem to a TreeListEditFormItem.

    In order for GetDataKeyValue and GetParentDataKeyValue to return the values you want, you must set them in the respective DataKeyNames and ParentDataKeyNames values when defining a RadTreeList:

    <telerik:RadTreeList ID="EmployeeTreeList" runat="server" 
        DataKeyNames="EmployeeID" 
        ParentDataKeyNames="ReportsTo">
        <Columns>
            <%-- Add column definitions here --%>
        </Columns>
    </telerik:RadTreeList>