2010-06-18 5 views
0

Im en utilisant un contrôle NestedRepeater personnalisé pour ASP.NET qui se trouve on code projectpersonnalisé répéteur avec hiractial Databinding

La source est en C# que je l'ai converti en vb et branché sur ma solution, si tout va bien. Le problème, im avoir est Databinding au répéteur, mon code regarde derrière comme ça ...

'' 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() 

Ensuite, dans le modèle d'élément de mon répéteur sur mesure im essayant les suivantes ...

<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> 

La liaison de données tombe plus de; Premièrement, "DataRow" dit qu'il attendait un ")". Et d'autre part que l'identifiant '! =' Est attendu.

Est-ce dû à la traduction de C#, si la liaison de données est différente?

Répondre

0

Bien que je ne l'ai pas programmé dans VB.net pendant de longues (environ 3 ans) mais je sais que AS n'est pas applicable dans VB.net vous avez besoin ctype de jeter Container.DataItem comme

CType(Container.DataItem, DataRow).

vous pouvez également essayer DirectCast(Container.DataItem, DataRow) mais je ne pense pas que cela fonctionnera.

aussi pour la comparaison des inégalités vous pouvez utiliser

Not Container.DataItem = 0

mais pas !=

+0

Merci pour votre réponse! Pourrais-tu me montrer comment je pourrais lancer ça? – Dooie