如何将“全选”条目添加到与SQLDataSource绑定的下拉列表中?

时间:2011-12-05 00:07:52

标签: asp.net drop-down-menu sqldatasource

我有一个与SQLDataSource绑定的下拉列表,它返回一个类别列表。由于这是用作搜索功能的一部分,如何添加“全选”类别并确保此类选择查询所有类别?

非常感谢!!

2 个答案:

答案 0 :(得分:0)

我有时会使用sql:

select value, description from reference_table
union
select -1, 'Select all'
Order by 2

还有一种方法可以在标记中添加项目,然后设置AppendDataBoundItems =“true”

此外,see this similar question and answer

答案 1 :(得分:0)

从不使用(AppendDataBoundItems =“true”)!

<asp:DropDownList ID="drpdwnmodel" DataSourceID="Model_Grid" DataTextField="INI" DataValueField="INI" OnSelectedIndexChanged="drprep_SelectedIndexChanged" OnDataBound="DataBoundbyTest_click" AutoPostBack="true" runat="server">
                           <asp:ListItem Value="All" Text="All"></asp:ListItem>
                        </asp:DropDownList>


  <asp:SqlDataSource ID="Model_Grid" runat="server"
                 ConnectionString="<%$ ConnectionStrings:Testconnectionstring%>"
                 SelectCommand="SELECT DISTINCT INI FROM TestTable where [Column] LIKE '%' + @valuename+ '%'  ORDER BY INI ASC">
                 <SelectParameters>
                     <asp:ControlParameter ControlID="drpdwnmodel" Name="valuename"
                         PropertyName="SelectedValue" Type="String" />
                 </SelectParameters>
             </asp:SqlDataSource>

 protected void DataBoundbyTest_click(object sender, EventArgs e)
    {
        drpdwnmodel.Items.Add("All");
        drpdwnmodel.Items.Insert(0, new ListItem("- Select -", "0"));
    }


protected void drprep_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (drpdwnmodel.SelectedValue.Equals("0"))
        {
            GridView1.DataSourceID = "Test_Grid";
        }
        else {
            if (drpdwnmodel.SelectedValue.Equals("All"))
            {
                GridView1.DataSourceID = "Test_Grid";
            }
            else
            {
                GridView1.DataSourceID = "SqlDataSource1";
            }
        }
        
    }