ParentId not set

3 posts, 0 answers
  1. Aljoscha
    Aljoscha avatar
    5 posts
    Member since:
    Mar 2013

    Posted 04 Nov 2014 Link to this post

    Hello,

    I'm urgently trying to bind a RadTreeList to an EntityDataSource.

        <telerik:RadTreeList runat="server" DataKeyNames="Id" ParentDataKeyNames="TreeElementId" DataSourceID="MediaAssetGroups" AutoGenerateColumns="false" ID="rtlCategories" OnItemInserted="rtlCategories_ItemInserted">
            <Columns>
                <telerik:TreeListBoundColumn DataField="Id" HeaderText="ID" ReadOnly="false"
                    UniqueName="EmployeeID" HeaderStyle-Width="60px" ForceExtractValue="Always" Visible="false">
                </telerik:TreeListBoundColumn>
                <telerik:TreeListBoundColumn DataField="Name" HeaderText="Name" ReadOnly="false"
                    Visible="true">
                </telerik:TreeListBoundColumn>
                <telerik:TreeListBoundColumn DataField="Description" HeaderText="Beschreibung" ReadOnly="false"
                    Visible="true">
                </telerik:TreeListBoundColumn>
                <telerik:TreeListCheckBoxColumn DataField="IsGlobalCategory" DefaultInsertValue="true" HeaderText="Globale Kategorie">
                </telerik:TreeListCheckBoxColumn>
                <telerik:TreeListCheckBoxColumn DataField="ContainsGlobalContent" DefaultInsertValue="false" HeaderText="Globaler Inhalt" Visible="true">
                </telerik:TreeListCheckBoxColumn>
                <telerik:TreeListCheckBoxColumn DataField="IsActive" DefaultInsertValue="true" HeaderText="Aktiv">
                </telerik:TreeListCheckBoxColumn>
                <telerik:TreeListCheckBoxColumn DataField="IsDeleted" DefaultInsertValue="false" HeaderText="Gelöscht" Visible="false">
                </telerik:TreeListCheckBoxColumn>
                <telerik:TreeListBoundColumn DataField="TreeElementId" ReadOnly="false">
                </telerik:TreeListBoundColumn>
                <telerik:TreeListBoundColumn DataField="UserId" HeaderText="Creator" ReadOnly="false"
                    Visible="false" />

                <telerik:TreeListDateTimeColumn DataField="CreationDate" HeaderText="Erstelldatum" ReadOnly="false" Visible="false"></telerik:TreeListDateTimeColumn>
                <telerik:TreeListEditCommandColumn UniqueName="InsertCommandColumn" ButtonType="ImageButton" HeaderStyle-Width="80px" ItemStyle-HorizontalAlign="Center">
                </telerik:TreeListEditCommandColumn>
            </Columns>
            <EditFormSettings EditFormType="Template" PopUpSettings-Width="700px">
                <FormTemplate>
                    <asp:TextBox ID="userid1" runat="server" Text='<%# Bind("UserId") %>' Visible="false"></asp:TextBox>

                    <telerik:RadDateTimePicker ID="creationdate1" runat="server" SelectedDate='<%# Bind("CreationDate") %>' Visible="false"></telerik:RadDateTimePicker>
                    <asp:ValidationSummary runat="server" HeaderText="Bei Ihrer Eingabe gab es Fehler:" />
                    <asp:Table runat="server">
                        <asp:TableRow>
                            <asp:TableHeaderCell>
                                Name
                            </asp:TableHeaderCell>
                            <asp:TableCell>
                                <asp:TextBox ID="tbName" runat="server" Text='<%# Bind("Name") %>' />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="tbName" ErrorMessage="Name muss angegeben werden.">
                                        *
                                </asp:RequiredFieldValidator>
                            </asp:TableCell>
                        </asp:TableRow>
                        <asp:TableRow>
                            <asp:TableHeaderCell>
                                Beschreibung
                            </asp:TableHeaderCell>
                            <asp:TableCell>
                                <asp:TextBox ID="tbDescription" runat="server" Text='<%# Bind("Description") %>' Width="300" Height="200" TextMode="MultiLine" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="tbDescription" ErrorMessage="Beschreibung muss angegeben werden.">
                                        *
                                </asp:RequiredFieldValidator>
                            </asp:TableCell>
                        </asp:TableRow>
                        <asp:TableRow>
                            <asp:TableHeaderCell>
                                Globale Kategorie
                            </asp:TableHeaderCell>
                            <asp:TableCell>
                                <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("IsGlobalCategory")%>'></asp:CheckBox>
                            </asp:TableCell>
                        </asp:TableRow>
                        <asp:TableRow>
                            <asp:TableHeaderCell>
                                Globaler Inhalt
                            </asp:TableHeaderCell>
                            <asp:TableCell>
                                <asp:CheckBox ID="cbIsActive" runat="server" Checked='<%# Bind("ContainsGlobalContent")%>'></asp:CheckBox>
                            </asp:TableCell>
                        </asp:TableRow>
                        <asp:TableRow>
                            <asp:TableHeaderCell>
                                Aktiviert
                            </asp:TableHeaderCell>
                            <asp:TableCell>
                                <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("IsActive")%>'></asp:CheckBox>
                            </asp:TableCell>
                        </asp:TableRow>
                        <asp:TableRow>
                            <asp:TableCell>
                                <asp:Button ID="btnUpdate2" Text='<%# (Container is TreeListEditFormInsertItem) ? "Insert" : "Update" %>'
                                    runat="server" CommandName='<%# (Container is TreeListEditFormInsertItem) ? "PerformInsert" : "Update" %>'></asp:Button>
                            </asp:TableCell>
                            <asp:TableCell>

                                <asp:Button ID="btnCancel2" Text="Cancel" runat="server" CausesValidation="False"
                                    CommandName="Cancel"></asp:Button>
                            </asp:TableCell>
                        </asp:TableRow>
                    </asp:Table>
                </FormTemplate>
            </EditFormSettings>
        </telerik:RadTreeList>

        <asp:EntityDataSource ID="MediaAssetGroups" runat="server"
            ConnectionString="name=X_DatabaseContainer"
            DefaultContainerName="X_DatabaseContainer" EnableFlattening="False"
            EntitySetName="TreeElementSet" EntityTypeFilter="MediaCategory" EnableInsert="True" EnableDelete="True" EnableUpdate="True"
            Include="" OrderBy="it.Name ASC"
            Where="it.IsDeleted = false">
        </asp:EntityDataSource>

    The Problem now is, that everything works fine except of inserting items below other items. Then the freshly created item will show up below root and not the selected parent.

    The Id and the TreeElementId are of type Guid.

    Has anybody a suggestion for this behaviour?
  2. Aljoscha
    Aljoscha avatar
    5 posts
    Member since:
    Mar 2013

    Posted 04 Nov 2014 in reply to Aljoscha Link to this post

    Hm... can't edit, so as a reply:

    <telerik:RadTreeList runat="server" DataKeyNames="Id" ParentDataKeyNames="TreeElementId" DataSourceID="MediaAssetGroups" AutoGenerateColumns="false" ID="rtlCategories" OnItemInserted="rtlCategories_ItemInserted">
        <Columns>
            <telerik:TreeListBoundColumn DataField="Id" HeaderText="ID" ReadOnly="false"
                UniqueName="EmployeeID" HeaderStyle-Width="60px" ForceExtractValue="Always" Visible="false">
            </telerik:TreeListBoundColumn>
            <telerik:TreeListBoundColumn DataField="Name" HeaderText="Name" ReadOnly="false"
                Visible="true">
            </telerik:TreeListBoundColumn>
            <telerik:TreeListBoundColumn DataField="Description" HeaderText="Beschreibung" ReadOnly="false"
                Visible="true">
            </telerik:TreeListBoundColumn>
            <telerik:TreeListCheckBoxColumn DataField="IsGlobalCategory" DefaultInsertValue="true" HeaderText="Globale Kategorie">
            </telerik:TreeListCheckBoxColumn>
            <telerik:TreeListCheckBoxColumn DataField="ContainsGlobalContent" DefaultInsertValue="false" HeaderText="Globaler Inhalt" Visible="true">
            </telerik:TreeListCheckBoxColumn>
            <telerik:TreeListCheckBoxColumn DataField="IsActive" DefaultInsertValue="true" HeaderText="Aktiv">
            </telerik:TreeListCheckBoxColumn>
            <telerik:TreeListCheckBoxColumn DataField="IsDeleted" DefaultInsertValue="false" HeaderText="Gelöscht" Visible="false">
            </telerik:TreeListCheckBoxColumn>
            <telerik:TreeListBoundColumn DataField="TreeElementId" ReadOnly="false">
            </telerik:TreeListBoundColumn>
            <telerik:TreeListBoundColumn DataField="UserId" HeaderText="Creator" ReadOnly="false"
                Visible="false" />
     
            <telerik:TreeListDateTimeColumn DataField="CreationDate" HeaderText="Erstelldatum" ReadOnly="false" Visible="false"></telerik:TreeListDateTimeColumn>
            <telerik:TreeListEditCommandColumn UniqueName="InsertCommandColumn" ButtonType="ImageButton" HeaderStyle-Width="80px" ItemStyle-HorizontalAlign="Center">
            </telerik:TreeListEditCommandColumn>
        </Columns>
        <EditFormSettings EditFormType="Template" PopUpSettings-Width="700px">
            <FormTemplate>
                <asp:TextBox ID="userid1" runat="server" Text='<%# Bind("UserId") %>' Visible="false"></asp:TextBox>
     
                <telerik:RadDateTimePicker ID="creationdate1" runat="server" SelectedDate='<%# Bind("CreationDate") %>' Visible="false"></telerik:RadDateTimePicker>
                <asp:ValidationSummary runat="server" HeaderText="Bei Ihrer Eingabe gab es Fehler:" />
                <asp:Table runat="server">
                    <asp:TableRow>
                        <asp:TableHeaderCell>
                            Name
                        </asp:TableHeaderCell>
                        <asp:TableCell>
                            <asp:TextBox ID="tbName" runat="server" Text='<%# Bind("Name") %>' />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="tbName" ErrorMessage="Name muss angegeben werden.">
                                    *
                            </asp:RequiredFieldValidator>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableHeaderCell>
                            Beschreibung
                        </asp:TableHeaderCell>
                        <asp:TableCell>
                            <asp:TextBox ID="tbDescription" runat="server" Text='<%# Bind("Description") %>' Width="300" Height="200" TextMode="MultiLine" />
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="tbDescription" ErrorMessage="Beschreibung muss angegeben werden.">
                                    *
                            </asp:RequiredFieldValidator>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableHeaderCell>
                            Globale Kategorie
                        </asp:TableHeaderCell>
                        <asp:TableCell>
                            <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("IsGlobalCategory")%>'></asp:CheckBox>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableHeaderCell>
                            Globaler Inhalt
                        </asp:TableHeaderCell>
                        <asp:TableCell>
                            <asp:CheckBox ID="cbIsActive" runat="server" Checked='<%# Bind("ContainsGlobalContent")%>'></asp:CheckBox>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableHeaderCell>
                            Aktiviert
                        </asp:TableHeaderCell>
                        <asp:TableCell>
                            <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("IsActive")%>'></asp:CheckBox>
                        </asp:TableCell>
                    </asp:TableRow>
                    <asp:TableRow>
                        <asp:TableCell>
                            <asp:Button ID="btnUpdate2" Text='<%# (Container is TreeListEditFormInsertItem) ? "Insert" : "Update" %>'
                                runat="server" CommandName='<%# (Container is TreeListEditFormInsertItem) ? "PerformInsert" : "Update" %>'></asp:Button>
                        </asp:TableCell>
                        <asp:TableCell>
     
                            <asp:Button ID="btnCancel2" Text="Cancel" runat="server" CausesValidation="False"
                                CommandName="Cancel"></asp:Button>
                        </asp:TableCell>
                    </asp:TableRow>
                </asp:Table>
            </FormTemplate>
        </EditFormSettings>
    </telerik:RadTreeList>
     
    <asp:EntityDataSource ID="MediaAssetGroups" runat="server"
        ConnectionString="name=X_DatabaseContainer"
        DefaultContainerName="X_DatabaseContainer" EnableFlattening="False"
        EntitySetName="TreeElementSet" EntityTypeFilter="MediaCategory" EnableInsert="True" EnableDelete="True" EnableUpdate="True"
        Include="" OrderBy="it.Name ASC"
        Where="it.IsDeleted = false">
    </asp:EntityDataSource>
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Kostadin
    Admin
    Kostadin avatar
    1711 posts

    Posted 07 Nov 2014 Link to this post

    Hi Aljoscha,

    In order to add a new item under some item you need to gets its ID first and set it as a ParentID of the new item so basically you can not use Guid value. I would recommend you to examine the following live example which demonstrates how to achiever that.

    Regards,
    Kostadin
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
Back to Top