Как добавить запись «Выбрать все» в выпадающий список, связанный с SQLDataSource? - PullRequest
1 голос
/ 05 декабря 2011

У меня есть выпадающий список, привязанный к источнику SQLDataSource, который возвращает список категорий. Поскольку это используется как часть функции поиска, как добавить категорию «Выбрать все» и убедиться, что такой выбор запрашивает все категории?

Большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 10 апреля 2015

Никогда не использовать (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";
            }
        }
        
    }
0 голосов
/ 05 декабря 2011

Я иногда использую sql для этого:

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

Существует также способ, которым вы добавляете элемент в разметку, затем устанавливаете AppendDataBoundItems = "true"

Также, см. Аналогичный вопрос и ответ

...