Kommer lige med et eksempel. Det er et udklip/omskrivning af min egen kode, så der kan godt være et par småfejl...
code: -------------------- Public Sub repeat1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) 'Find repeat-komponent i sub-items Dim rep2 as Repeater = cType(e.Item.FindControl("repeat2"),Repeater)
'Vi vil kun binde dataset til repeater hvis der er tale om et "item" eller et "alternateItem" If not CType(e.Item.ItemType, ListItemType) = ListItemType.Item and not CType(e.Item.ItemType, ListItemType) = ListItemType.AlternatingItem Then Exit Sub End If
rep2.datasource=MinInterneDatasource rep2.databind End Sub
html: --------------------- <asp:Repeater id=repeat1 runat="server" OnItemDataBound="repeat1_ItemDataBound" EnableViewState="False" > <itemTemplate> Her er lidt tekst - ID=<%# Container.DataItem("ID") %>"><br /> <asp:Repeater id=repeat2 runat="server"/> </itemTemplate> </asp:Repeater>
sub oslist_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) dim objOSList as Repeater = cType(e.Item.FindControl("oslist"),Repeater)
dim objConn as new OleDbConnection(strDBConnection) dim strSQL as String strSQL = "SELECT OS FROM tblOS"
dim objCmd as new OleDbDataAdapter(strSQL,objConn) dim objDS as DataSet = new DataSet() objCmd.Fill(objDS,"tblOS") objOSList.DataSource = objDS.Tables("tblOS").DefaultView objOSList.DataBind() end sub
som om objOSList ikke bliver oprettet !?
i dit eksempel laver du kun databind hvis ' der er tale om et "item" eller et "alternateItem"' - hvorfor - og hvad betyder det ?
det er fordi eventet også bliver udført når den f.eks. laver header og footer, men disse indeholder jo ikke kontrollen "oslist", hvorfor den vil fejle. Mht. object reference... prøv at tilføje new og se om det skulle hjælpe (vildt gæt): dim objOSList as New Repeater = cType(e.Item.FindControl("oslist"),Repeater)
Jeg satte den if-sætning ind (item eller alternate item) og så funger det.
Kan jeg sende en parameter med over til den ItemDataBound metode ? Jeg laver jo en sql query. Lige nu er den harcoded, men den skulle gerne variere afhængig af data fra den yderste repeater !?!
kan du ikke bare bruge en asp:TextBox ? Skal du lave hidden-værdier, kan du jo med fordel i stedet gemme værdierne i viewstate.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.