WedX - журнал о программировании и компьютерных науках

Динамически создавать вложенную HTML-таблицу из результатов с данными

У меня возникли проблемы с созданием построителя вложенных таблиц с использованием кода vb.net. У меня есть таблица данных, хранящая все с идентификаторами дочерних и родительских элементов, и для этого потребуется, чтобы код рекурсивно зацикливался и динамически строил таблицы из пользовательского ввода. К сожалению, я могу только заставить его перебирать и выводить все данные (не вложенные). Мне нужна помощь с «если (у ребенка есть родители), то сделайте вложенную таблицу» и повторите. Код ниже - это то, что мне нужно для вывода всех строк. Он не оценивает, есть ли у элемента родители. Вот в чем мне нужна помощь. Мой код, который я пробовал, будет углубляться только на один уровень (не рекурсивно). Любая помощь будет оценена по достоинству.

     Public Sub tablebuilder(ByRef tDataTable As DataTable)
         Response.Write("<table>")
         Response.Write("<tr><th><Child></th><th><Parent></th></tr>")
         For Each row As DataRow In tDataTable.Rows
             Response.Write("<tr><td>row.Item("IMA_ItemName_CHILD").ToString</td>")
            Response.Write("<td>row.Item("IMA_ItemName_PARENT").ToString</td></tr>")
         Next
         Response.Write("</table>")
    End Sub

Любая помощь будет потрясающей. Застрял на этом на некоторое время.


Ответы:


1

Получил наконец. Должно быть, это моя сотая догадка .... не думал, что это позволит мне вызвать сабвуфер внутри самого сабвуфера, но это сработало. Перемещена таблица вызовов наружу, но новые tr находятся в правильном месте (вложенные)

Public Sub MakeSimpleTable(ByRef pDataTable As DataTable, ByRef viewer As String)

    Response.Write("<tr>")
    Response.Write("<th>Parent Id</th>")
    Response.Write("<th>Parent Name</th>")
    Response.Write("<th>QPA</th>")
    Response.Write("</tr>")

    Dim sortOrder As String = "IMA_ItemID_PARENT ASC"
    Dim rows() As DataRow = pDataTable.Select("IMA_ItemID_CHILD = '" & viewer & "'", sortOrder)
    Dim CP() As DataRow

    For Each row As DataRow In rows
        RowBuilder(row)
        viewer = row.Item("IMA_ItemID_PARENT").ToString
        CP = pDataTable.Select("IMA_ItemID_CHILD = '" & viewer & "'", sortOrder)
        If (CP.Length > 0) Then
            MakeSimpleTable(pDataTable, viewer)
        End If
    Next
End Sub

Public Sub RowBuilder(ByRef row As DataRow)

    Response.Write("<tr>")
    Response.Write("<td>")
    Response.Write(row.Item("IMA_ItemID_PARENT").ToString)
    Response.Write("</td>")
    Response.Write("<td>")
    Response.Write(row.Item("IMA_ItemName_PARENT").ToString)
    Response.Write("</td>")
    Response.Write("<td>")
    Response.Write(row.Item("PST_QtyPerAssy").ToString)
    Response.Write("</td>")
    Response.Write("</tr>")

End Sub

Public Sub CreateSearch()

    Dim mySQL As String = "editted"
    Dim myTable_Items As DataTable = GetData(mySQL)
    Dim viewer As String = mySearch

    viewer = mySearch

    Response.Write("You searched ")
    If Len(mySearch) > 0 Then Response.Write(mySearch) Else Response.Write("everything.")
    Response.Write("<br /><br />")
    Response.Write("<table border = '1'>")
    MakeSimpleTable(myTable_Items, viewer)
    Response.Write("</table>")

End Sub
07.03.2016
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]