Вложенные даталисты до уровня GreatGrandChild

Я был "успешным" в том, чтобы заставить вложенных даталистов работать через четыре поколения (Parent, Child, GrandChild, GreatGrandChild), но только с наборами записей менее 50 и почти минутой времени оттока. Теперь, когда у меня есть около 500 записей, время ожидания истекло.

Я испробовал несколько методов, которые я нашел в Интернете, для успешного получения списков данных "Родитель-ребенок", но я не мог получить повторную обработку для работы с GrandChild без ошибки при использовании слишком большого количества открытых соединений.

Может ли кто-нибудь поделиться лучшей практикой для быстрого, вложенного в данные поколения из четырех поколений?

Вот пример кода для связывания данных со списком данных Child и GrandChild:

Sub Item_Bound_Child(sender As Object, e As DataListItemEventArgs)

    If e.Item.ItemType = ListItemType.Item Or _
        e.Item.ItemType = ListItemType.AlternatingItem Then

        ' Retrieve the Label control in the current DataListItem.
        Dim Parent_Name_Label As Label = _
            CType(e.Item.FindControl("lbl_Parent_Name"), Label)

        Dim s As SqlDataSource = DirectCast(e.Item.FindControl("DataSource_Child_Data"), SqlDataSource)

        s.FilterParameters(0).DefaultValue = Parent_Name_Label.Text
        s.DataBind()


    End If

End Sub
Sub Item_Bound_GrandChild(sender As Object, e As DataListItemEventArgs)

    If e.Item.ItemType = ListItemType.Item Or _
        e.Item.ItemType = ListItemType.AlternatingItem Then

        ' Retrieve the Label control in the current DataListItem.
        Dim Parent_Name_Child_Level_Label As Label = _
            CType(e.Item.FindControl("lbl_Parent_Name_Child_Level"), Label)
        Dim Child_Name_Label As Label = _
            CType(e.Item.FindControl("lbl_Child_Name"), Label)

        Dim s As SqlDataSource = DirectCast(e.Item.FindControl("DataSource_GrandChild_Data"), SqlDataSource)

        s.FilterParameters(0).DefaultValue = Parent_Name_Child_Level_Label .Text
        s.FilterParameters(1).DefaultValue = Child_Name_Label .Text
        s.DataBind()

    End If

End Sub

Я могу только представить, что я что-то пропускаю или совершаю слишком много поездок туда и обратно. Я уверен, что буду признателен за направление и помощь.

Спасибо роб

1 ответ

Я нашел это объяснение очень полезным для настройки привязки данных для многоуровневых вложенных данных. Хотя код изначально был очень пугающим, я изучил его и адаптировал к своему использованию.

http://msdn.microsoft.com/en-us/library/aa478959.aspx

Теперь мои вложенные даталисты отображаются в считанные секунды.

Мой следующий шаг - узнать, как редактировать список данных GreatGrandChild.

Другие вопросы по тегам