Hi,
I have learned to love datalists but have, of course, messed myself up
by trying something tricky (at least for me). I put a repeater in the
selecteditem template:
(data list declared above)
<SelectedItemTemplate>
<asp:Repeater ID="drWageHist" Runat=server>
<ItemTemplate>
<tr>
<td align="left"><%# databinder.eval
(container, "DataItem.entereddate")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</SelectedItemTemplate>
I want to click on the itemtemplate of the data list and have the
repeater come up with its rows. I am trying to bind a differnt data reader
to the repeater than the one that filled datalist. I saw some pages on the
web that described this process. Here's the code I'm using:
Public Sub ListCreated(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
_
Handles dlTermList.ItemDataBound
Dim lrepeater As Repeater = New Repeater()
Dim squery As String
Dim cADO As New clsADO()
Dim MyConn As New System.Data.OleDb.OleDbConnection
(SQLConnectString)
MyConn.Open()
squery = "Select EnteredDate from wagehist where ssn='999999999'"
Dim MyCmd As New System.Data.OleDb.OleDbCommand(squery, MyConn)
Dim MyDataRdr As System.Data.OleDb.OleDbDataReader =
cADO.createCommand(squery).executereader()
'Make appropriate buttons visable based on 'type' of user
'Above store managers will only disapprove wage changes.
'Payroll administrators will process those records which were not
'disapproved in TOPPS.
If e.Item.ItemType = ListItemType.Item Then
lrepeater = CType(e.Item.FindControl("drWageHist"), Repeater)
lrepeater.DataSource = MyDataRdr
lrepeater.DataBind()
End If
End Sub
I tried running this code from the OnItemDataBound event and the
onItemCreated event. In both cases the FindControl method returns nothing
and I get the error: Object reference not set to an instance of an object.
This error comes up when I try to set the datasource.
What am I doing wrong?
Neil