• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1205
  • Last Modified:

Linq to SQL Where ControlParameter for text in dropdownlist

Hi EE,

I have an asp page with 4 dropdownlists (DD) and a grid.  When a user selects a dropdown(DD)  it automatically fills the next  DD according to the selectedvalue.
Everything works fine when using the selected value, but on my last DD I have to take the text from the 3rd DD to filter the last DD.
For example, the 3rd DD has a list with CityID and  CityName, instead of filtering the last DD by CityID, I need to match the CityName field with the SalonCity field in the last DD.
How would I do this using Linq to SQL?
Thanks
<td>    
                         <asp:DropDownList ID="ddCity" Width="95%"  runat="server" AutoPostBack="True" 
                              DataSourceID="DSCities" DataTextField="CityName" 
                              DataValueField="CityLUID">
                         </asp:DropDownList>                                
                         <asp:LinqDataSource ID="DSCities" runat="server" 
                              ContextTypeName="SalonClassesDataContext" OrderBy="CityName" 
                              Select="new (CityLUID, CityName)" TableName="CitysLUs" 
                              Where="StateID == @StateID">
                              <WhereParameters>
                                   <asp:ControlParameter ControlID="ddState" Name="StateID" 
                                        PropertyName="SelectedValue" Type="Int32" />
                              </WhereParameters>
                         </asp:LinqDataSource>
                    </td>
                    <td>
                         <asp:DropDownList ID="ddSalonName"  Width="95%" runat="server" 
                              AutoPostBack="True" DataSourceID="DSSalonNames" DataTextField="SalonName" 
                              DataValueField="StylistID">
                         </asp:DropDownList>                                
                         <asp:LinqDataSource ID="DSSalonNames" runat="server" 
                              ContextTypeName="SalonClassesDataContext" OrderBy="SalonName" 
                              Select="new (StylistID, SalonName)" TableName="Stylists" 
                              Where="SalonCity == @CityName">
                              
                              <WhereParameters>
                                   <asp:ControlParameter ControlID="ddCity" Name="CityName" 
                                        PropertyName="SelectedItem" Type="String" />
                              </WhereParameters>
                         </asp:LinqDataSource>
                    </td>

Open in new window

0
Sheritlw
Asked:
Sheritlw
  • 5
  • 2
1 Solution
 
nmarunCommented:
Haven't tried this, but give this a shot:                                                                                                         PropertyName="SelectedItem.Text" Type="String" />                              Arun
0
 
nmarunCommented:
not sure why it posted incorrectly. Second trial.Arun
<WhereParameters>
    <asp:ControlParameter ControlID="ddCity" Name="CityName" 
         PropertyName="SelectedItem" Type="String" />
</WhereParameters>

Open in new window

0
 
nmarunCommented:
                PropertyName="SelectedItem.Text" Type="String" />
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
nmarunCommented:
Ok.. my final answer is the first post.Arun
0
 
SheritlwAuthor Commented:
Unfortunately It didn't work.
0
 
nmarunCommented:
That's strange, cos I have a similar piece that is working.

Arun

<asp:DropDownList ID="ddList" runat="server" AutoPostBack="True" />
<br />
<asp:LinqDataSource ID="DSCities" runat="server" TableName="Products" 
    Where="Name == @Name" 
    ContextTypeName="WebApplication1.SportsStoreDataContextDataContext">
    <WhereParameters>
        <asp:ControlParameter ControlID="ddList" Name="Name" PropertyName="SelectedItem.Text"
            Type="String" />
    </WhereParameters>
</asp:LinqDataSource>
<br />
<asp:DropDownList ID="ddSalonName" Width="95%" runat="server" DataSourceID="DSCities" 
     DataTextField="Category" DataValueField="ProductID">
</asp:DropDownList>

// code-behind:
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string conxnString =
            ConfigurationManager.ConnectionStrings["SportsStoreConnectionString"].ConnectionString;
        SportsStoreDataContextDataContext sportsStoreDataContextDataContext =
            new SportsStoreDataContextDataContext(conxnString);
        ddList.DataSource = sportsStoreDataContextDataContext.Products;
        ddList.DataTextField = "Name";
        ddList.DataValueField = "ProductID";
        ddList.DataBind();
    }
}

Open in new window

0
 
SheritlwAuthor Commented:
I see, I would need to add some additional code to get that to work.

Thanks
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now