我正在使用ASP.NET的自定义NestedRepeater控件,可以找到on code project
源代码在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#的转换,数据绑定是否应该不同?
答案 0 :(得分:0)
虽然我没有在VB.net中编程很长时间(大约3年),但我知道AS
不适用于VB.net,您需要ctype
来投射Container.DataItem
喜欢
CType(Container.DataItem, DataRow)
。
您也可以尝试DirectCast(Container.DataItem, DataRow)
,但我认为这不会起作用。
同样,对于不平等比较,您可以使用
Not Container.DataItem = 0
但不是!=