Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
970
WebDropDown SelectedItems collection ControlParameter binding
posted

I would like to bind to comma delimited value's in WebDropDown to a SQL Server In Clause.  What's the best way to do this?  Here's some code.

<ig:WebDropDown ID="WebDropDown1" runat="server" EnableClosingDropDownOnSelect="false" EnableMultipleSelection="True" EnableCustomValues="False" EnableCustomValueSelection="False" >
                        <Items>
                            <ig:DropDownItem Selected="False" Text="Other" Value="''">
                            </ig:DropDownItem>
                            <ig:DropDownItem Selected="False" Text="Apple" Value="'Apple'">
                            </ig:DropDownItem>
                            <ig:DropDownItem Selected="False" Text="Orange" Value="'Orange'">
                            </ig:DropDownItem>
                            <ig:DropDownItem Selected="False" Text="Banana and Plantain" Value="'Banana',''Plantain'">
                            </ig:DropDownItem>
                        </Items>
                    </ig:WebDropDown>

Hard query like this

       <asp:SqlDataSource ID="SqlDataSource2"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:DBNameConnectionString2 %>"
            SelectCommand="SELECT * FROM DBName.dbo.TableName WHERE ColumnFruit IN ('','Apple','Orange', 'Banana',''Plantain')
       </asp:SqlDataSource>

Paramaterized like this

       <asp:SqlDataSource ID="SqlDataSource2"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:DBNameConnectionString2 %>"
            SelectCommand="SELECT * FROM DBName.dbo.TableName WHERE ColumnFruit IN (@FruitCol)
            <SelectParameters>
                <%--<asp:ControlParameter ControlID="WebDropDown1" Name="FruitCol" PropertyName="SelectedItems.Value" />--%>
            </SelectParameters>
       </asp:SqlDataSource>

Something like this could create the string properly

protected string GetSelectedValue(Infragistics.Web.UI.ListControls.WebDropDown wdd)
        {
            char[] c = new char[] { ',' };

            string s = string.Empty;
            for (int i = 0; i < wdd.SelectedItems.Count; i++)
            {
                s += wdd.SelectedItems[i].Value + ",";
            }
            return s.TrimEnd(c);
        }

Thanks for the help.