Hi there,
I am working my way through the ASP.NET
VB version and I cant find whats going wrong. I keep getting this error....
Server Error in '/' Application.
--------------------------------------------------------------------------------
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30456: 'DataItem' is not a member of 'System.Web.UI.Control'.
Source Error:
Line 90: <asp:Repeater id="PlayersList" runat="server" />
Line 91: <ItemTemplate>
Line 92: <asp:linkbutton text='<%# Container.DataItem("PlayerName") %>' style="color:darkred" runat="server" width="120" />
Line 93:
Line 94: <asp:label text='<%# Container.DataItem("PositionName") %>' id="playerposition" runat="server" /><br />
Source File: C:\BegASPNet11\WroxUnited\Teams.aspx Line: 92
*****************************************
This is the code that I am using.....
<%@ Page Language="
VB" %>
<script runat="server">
Dim SelectedTeam As String
Sub Page_Load()
TeamList.DataSource = GetTeams
TeamList.DataBind()
End Sub
Sub TeamList_ItemCommand(sender As Object, e As DataListCommandEventArgs)
If e.CommandName.equals("ShowTeam") Then
SelectedTeam = CType(e.CommandSource, LinkButton).Text
PlayersList.DataSource = GetPlayersByTeam(e.CommandArgument)
PlayersList.DataBind()
End If
End Sub
Function GetTeams() As System.Data.IDataReader
Dim connectionString As String = ConfigurationSettings.AppSettings("ConnectionStrin g")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString )
Dim queryString As String = "SELECT [Teams].[TeamID], [Teams].[TeamName], [Teams].[Notes] FROM [Teams]"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavio r.CloseConnection)
Return dataReader
End Function
Function GetPlayersByTeam(ByVal teamID As Integer) As System.Data.IDataReader
Dim connectionString As String = ConfigurationSettings.AppSettings("ConnectionStrin g")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString )
Dim queryString As String = "SELECT [Players].[PlayerName], [Positions].[PositionName] FROM [Players], [Positi"& _
"ons], [PlayerTeam], [Teams] WHERE (([PlayerTeam].[PlayerID] = [Players].[PlayerI"& _
"D]) AND ([PlayerTeam].[Position] = [Positions].[PositionID]) AND ([PlayerTeam].["& _
"TeamID] = [Teams].[TeamID]) AND ([PlayerTeam].[TeamID] = @TeamID))"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_teamID As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
dbParam_teamID.ParameterName = "@TeamID"
dbParam_teamID.Value = teamID
dbParam_teamID.DbType = System.Data.DbType.Int32
dbCommand.Parameters.Add(dbParam_teamID)
dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavio r.CloseConnection)
Return dataReader
End Function
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<h1>Wrox United
</h1>
<h2>Teams
</h2>
<p>
<table>
<tbody>
<tr>
<td>
<asp:DataList id="TeamList" runat="server" OnItemCommand="TeamList_ItemCommand">
<ItemTemplate>
<asp:linkbutton text='<%# Container.DataItem("TeamName") %>' CommandArgument='<%# Container.DataItem("TeamID") %>' id="TeamNameLink" style="color:darkred" CommandName="ShowTeam" runat="server" />
<br />
<asp:Label text='<%# Container.DataItem("Notes") %>' id="teamnotes" runat="server" />
</ItemTemplate>
<SeparatorTemplate>
<br />
</SeparatorTemplate>
</asp:DataList>
</td>
<td>
</td>
<td style="vertical-align:top">
<asp:Repeater id="PlayersList" runat="server" />
<ItemTemplate>
<asp:linkbutton text='<%# Container.DataItem("PlayerName") %>' style="color:darkred" runat="server" width="120" />
<asp:label text='<%# Container.DataItem("PositionName") %>' id="playerposition" runat="server" /><br />
</ItemTemplate>
<headerTemplate>
Players in: <%= SelectedTeam %>
</headerTemplate>
<footerTemplate>
</footerTemplate>
</asp:Repeater>
</td>
</tr>
</tbody>
</table>
</p>
</form>
</body>
</html>