SqlDataSource control error

binici

Active member
Joined
Sep 11, 2006
Messages
26
Programming Experience
Beginner
Hello:
I am having a little issue with an error that is frustrating me. I have a SqlDataSource within an asp:label control and also have a two dropdownlists inside that asp:label control also. When I select from the first dropdownlist, it should enable the second dropdownlist with the populated data, but instead I receive.
The SqlDataSource control 'sqlGetMLSByCity' does not have a naming container. Ensure that the control is added to the page before calling DataBind.
Any ideas why this would be? Here is the web from portion:
<asp:Label ID="recip_form_request" runat="server" Visible="false">
<ul>
<li>Step one: Select listing type.</li>
<li>Step two: Select the City that you are reciprocating to.</li>
<li>Step three: Complete the Recip Form.</li>
</ul>
<asp:DropDownList ID="recip_form_type" runat="server" AutoPostBack="true" Visible="False">
<asp:ListItem Value="0" Text="(Select Form)"></asp:ListItem>
<asp:ListItem Value="1" Text="Residential"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="outside_assoc_cities" runat="server" AutoPostBack="True" Enabled="False" DataTextField="city" DataValueField="id" Visible="False"></asp:DropDownList><br />
<asp:Label ID="city_mls_desc" runat="server"></asp:Label><br />
<asp:Button ID="page1_btn" runat="server" Text="Next >>" Visible="False" />
<asp:SqlDataSource ID="sqlCities" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ AppSettings:connectionstring %>" SelectCommandType="Text" SelectCommand="SELECT id, city FROM tCityMaster"></asp:SqlDataSource>
<asp:SqlDataSource ID="sqlGetMLSByCity" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ AppSettings:connectionstring %>">
<SelectParameters>
<asp:ControlParameter ControlID="outside_assoc_cities" Name="City" />
</SelectParameters>
</asp:SqlDataSource>
</asp:Label>
then the code behind:
Protected Sub outside_assoc_cities_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles outside_assoc_cities.SelectedIndexChanged
If outside_assoc_cities.SelectedIndex > -1 Then
Dim ItemId As Integer = Integer.Parse(outside_assoc_cities.SelectedValue)
Dim MLSID As String = Nothing
Dim cmd As New SqlCommand
Dim con As New SqlConnection
cmd.Connection = con
Dim sqlGetMLSByCity_sql As SqlDataSource = CType(Page.FindControl("sqlGetMLSByCity"), SqlDataSource)
'using connectionstring from SqlDataSource Control
con.ConnectionString = sqlGetMLSByCity_sql.ConnectionString
'con.ConnectionString = sqlGetMLSByCity.ConnectionString
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT mls_id FROM pwaordev..tCityMaster WITH(NOLOCK) WHERE ID=@ID"
cmd.Parameters.Add("@ID", SqlDbType.Int, 4).Value = ItemId
Try
con.Open()
MLSID = cmd.ExecuteScalar
con.Dispose()
cmd.Dispose()
Catch ex As Exception
con.Dispose()
cmd.Dispose()
Response.Write(ex.ToString())
End Try
'Further logic to display button depending on MLS
If Not String.IsNullOrEmpty(MLSID) Then
If MLSID = "B" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Greater South Bay MLS."
page1_btn.Visible = True
ElseIf MLSID = "A" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Big Bear BOR, MLS, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
ElseIf MLSID = "C" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Combined L.A./Westside MLS."
page1_btn.Visible = True
ElseIf MLSID = "F" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Crisnet MLS, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
ElseIf MLSID = "Y" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is DCAoR - Yucca Valley Area, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
ElseIf MLSID = "D" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Desert Area MLS."
page1_btn.Visible = True
ElseIf MLSID = "L" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is i-Tech Glendale/Pasadena."
page1_btn.Visible = True
ElseIf MLSID = "M" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is MRM - Multi-Regional MLS."
page1_btn.Visible = True
ElseIf MLSID = "R" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is RIM - Rim of the World MLS, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
ElseIf MLSID = "G" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is SDI - San Diego, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
ElseIf MLSID = "S" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is SOCAL MLS - Southern California MLS."
page1_btn.Visible = True
ElseIf MLSID = "T" Then
city_mls_desc.Text = "The MLS system that covers " & outside_assoc_cities.SelectedItem.Text & " is Outside Area, which is not covered by Pacific West Association of REALTOR&reg, please contact us for more information."
page1_btn.Visible = False
End If
'test.Text = MLSID
'If test.Text = "L" Then
'mls_text.Text = "i-Tech"
'End If
End If
End If
End Sub
Any help would be great, thank you!
 
Ok, I figured it out, sloppy coding, I don't need this as is:

<asp:SqlDataSource ID="sqlGetMLSByCity" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ AppSettings:connectionstring %>">
<SelectParameters>
<asp:ControlParameter ControlID="outside_assoc_cities" Name="City" />
</SelectParameters>
</asp:SqlDataSource>

so I eliminated the parameters.

Now, i seem to be having a problem? When I select the first item from

asp:DropDownList ID="recip_form_type" runat="server" AutoPostBack="true" Visible="False">
<asp:ListItem Value="0" Text="(Select Form)"></asp:ListItem>
<asp:ListItem Value="1" Text="Residential"></asp:ListItem>
</asp:DropDownList>

The page postsback, but it seems to hide the label? So, i cannot see anything?

<asp:Label ID="recip_form_request" runat="server" Visible="false">
<ul>
<li>Step one: Select listing type.</li>
<li>Step two: Select the City that you are reciprocating to.</li>
<li>Step three: Complete the Recip Form.</li>
</ul>
<asp:DropDownList ID="recip_form_type" runat="server" AutoPostBack="true" Visible="False">
<asp:ListItem Value="0" Text="(Select Form)"></asp:ListItem>
<asp:ListItem Value="1" Text="Residential"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="outside_assoc_cities" runat="server" AutoPostBack="True" Enabled="False" DataTextField="city" DataValueField="id" Visible="False"></asp:DropDownList><br />
<asp:Label ID="city_mls_desc" runat="server"></asp:Label><br />
<asp:Button ID="page1_btn" runat="server" Text="Next >>" Visible="False" />
<asp:SqlDataSource ID="sqlCities" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ AppSettings:connectionstring %>" SelectCommandType="Text" SelectCommand="SELECT id, city FROM tCityMaster"></asp:SqlDataSource>
<asp:SqlDataSource ID="sqlGetMLSByCity" runat="server" ProviderName="System.Data.SqlClient" ConnectionString="<%$ AppSettings:connectionstring %>"></asp:SqlDataSource>
</
asp:Label>

Any ideas? Do, I have to use findcontrol in the vb instead to refer to the controls?
 
Back
Top