Пользовательский Повторитель с Hiractial Databinding - PullRequest
0 голосов
/ 18 июня 2010

Я использую пользовательский элемент управления NestedRepeater для ASP.NET, который можно найти в проекте кода

Источник находится в c #, который я преобразовал в vb и подключил к своему решению, поэтомупока все хорошо.Проблема в том, что у меня есть привязка данных к репитеру, мой код выглядит следующим образом ...

    '' get all pages
    Dim navPages As DataSet = Navigation.getMenuStructure()
    navPages.Relations.Add(navPages.Tables(0).Columns("ID"), navPages.Tables(0).Columns("ParentID"))
    NestedRepeaterNavigation.RelationName = RelationName
    NestedRepeaterNavigation.DataSource = navPages
    NestedRepeaterNavigation.RowFilterTop = "ParentID is null"
    NestedRepeaterNavigation.DataBind()

Затем в шаблоне элемента моего собственного репитера я пытаюсь выполнить следующее ...

<ItemTemplate>
    <img src="/pix.gif" height="10" width="<%#(Container.Depth * 10)%>">
<%# (Container.DataItem as DataRow)["DESCRIPTION"]%>
<%# (Container.NbChildren != 0 ? "<small><i>(" + Container.NbChildren.ToString() +")</i></small>" "") %><small><i></i></small>
</ItemTemplate>

Привязка данных падает;во-первых, это «как DataRow» говорит, что ожидал «)».И, во-вторых, ожидался идентификатор '! ='.

Это из-за перевода с c #, должна ли привязка данных отличаться?

1 Ответ

0 голосов
/ 18 июня 2010

Хотя я давно не программировал на VB.net (около 3 лет), но я знаю, что AS не применим в VB.net, вам нужно ctype, чтобы разыграть Container.DataItem, как

CType(Container.DataItem, DataRow).

вы также можете попробовать DirectCast(Container.DataItem, DataRow), но я не думаю, что это сработает.

Также для сравнения неравенств вы можете использовать

Not Container.DataItem = 0

но не !=

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...