Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / фильтрация в GridView через DropDownList / 11 сообщений из 11, страница 1 из 1
14.02.2012, 09:38:23
    #37660399
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
Есть GridView в котором нужно осуществлять фильтрацию данных в зависимости от выбранного значения в DropDownList.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False" 
                    BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" 
                    CellPadding="3" DataKeyNames="IdWorker" DataSourceID="SqlDataSource1" 
                    Height="138px" onselectedindexchanged="GridView4_SelectedIndexChanged" 
                    Width="556px" AllowSorting="True">
                    <Columns>
                        <asp:CommandField ShowSelectButton="True" />
                        <asp:BoundField DataField="Name1" HeaderText="Name1" SortExpression="Name1" />
                        <asp:BoundField DataField="Name2" HeaderText="Name2" SortExpression="Name2" />
                        <asp:BoundField DataField="Name3" HeaderText="Name3" SortExpression="Name3" />
                        <asp:BoundField DataField="DatBirt" HeaderText="DatBirt" 
                            SortExpression="DatBirt" />
                        <asp:BoundField DataField="IdWorker" HeaderText="IdWorker" 
                            SortExpression="IdWorker" InsertVisible="False" ReadOnly="True" />
                        <asp:BoundField DataField="DatWork" HeaderText="DatWork" 
                            SortExpression="DatWork" />
                        <asp:BoundField DataField="post" HeaderText="post" SortExpression="post" />
                        <asp:BoundField DataField="IdDep" HeaderText="IdDep" SortExpression="IdDep" />
                    </Columns>
                    <FooterStyle BackColor="White" ForeColor="#000066" />
                    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
                    <RowStyle ForeColor="#000066" />
                    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                    <SortedAscendingCellStyle BackColor="#F1F1F1" />
                    <SortedAscendingHeaderStyle BackColor="#007DBB" />
                    <SortedDescendingCellStyle BackColor="#CAC9C9" />
                    <SortedDescendingHeaderStyle BackColor="#00547E" />
                </asp:GridView>



SqlDataSource для GridView

Код: c#
1.
2.
3.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
             ConnectionString="<%$ ConnectionStrings:WEBConnectionString2 %>" 
             SelectCommand="SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker]">         </asp:SqlDataSource>




DropDownList

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<asp:DropDownList 
        ID="DropDownList2" runat="server" Height="20px" Width="261px" 
            DataSourceID="SqlDataSource3" DataTextField="NameLong" 
            DataValueField="IdDep" 
            onselectedindexchanged="DropDownList2_SelectedIndexChanged">
        </asp:DropDownList>
        
<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:WEBConnectionString %>" 
            onselecting="SqlDataSource3_Selecting" 
            SelectCommand="SELECT [idDep], [NameShort], [KodGal], [NameLong] FROM [Department] WHERE ([KodGal] LIKE '1.4.%')AND ([NameLong] NOT LIKE 'Я-%')"> 
     </asp:SqlDataSource>



При нажатие на кнопку, должна произойти фильтрация

protected void Button1_Click(object sender, EventArgs e)
{
//@IdDep = DropDownList2.Text;
SqlDataSource1.SelectCommand = "SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker] WHERE ([IdDep] = Convert.ToString(DropDownList2.Value))";
SqlDataSource1.DataBind();



но не отрабатывает
...
Рейтинг: 0 / 0
14.02.2012, 11:17:14
    #37660583
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
tasha klemer
Код: sql
1.
2.
SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker] 
WHERE ([IdDep] = Convert.ToString(DropDownList2.Value))



это на каком языке программирования?
...
Рейтинг: 0 / 0
14.02.2012, 12:47:55
    #37660787
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
С##
...
Рейтинг: 0 / 0
14.02.2012, 12:48:48
    #37660790
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
tasha klemerС##
C#
...
Рейтинг: 0 / 0
14.02.2012, 12:53:11
    #37660802
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
а надо на SQL
...
Рейтинг: 0 / 0
15.02.2012, 07:19:45
    #37662234
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
.а надо на SQL

не уловила вашу мысль...


Код: c#
1.
SqlDataSource1.SelectCommand = "SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker] WHERE ([IdDep] = Convert.ToString(DropDownList2.Value))";




ЧТо здесь не правильно????
...
Рейтинг: 0 / 0
15.02.2012, 09:47:44
    #37662319
няка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
...
Рейтинг: 0 / 0
15.02.2012, 11:02:52
    #37662435
aswell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
Простите... Страшно становится, когда такое видишь. Надеюсь, это просто тестовая страничка, "а как оно работает?"
А вообще, если уж очень хочется через SQLDataSource - сделайте фильтр через параметр в запросе.

<SelectParameters>
<asp:ControlParameter ControlID=....
</SelectParameters>
...
Рейтинг: 0 / 0
15.02.2012, 11:09:49
    #37662457
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
tasha klemer.а надо на SQLне уловила вашу мысль...слово SQL о чем-то говорит? в курсе вообще что это такое?
...
Рейтинг: 0 / 0
15.02.2012, 13:45:40
    #37662916
tasha klemer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
Пробовала я уже через <selectparameters> при значение Defoult= "" или "0" - DataSourse выходит пустой, а при загрузке формы мне нужно чтоб изначально Grid был заполнен всеми записями из dataSourse.
Нашла вот что:
Код: c#
1.
2.
3.
4.
5.
6.
7.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
             ConnectionString="<%$ ConnectionStrings:WEBConnectionString2 %>" 
             SelectCommand="SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker] "
           FilterExpression="IdDep='{0}'">
<FilterParameters>
<asp:ControlParameter Name="IdDep" ControlId="DropDownList2" PropertyName="SelectedValue"/>
</FilterParameters>



Код: c#
1.
2.
        SqlDataSource1.SelectParameters[0].DefaultValue = DropDownList2.Text;
           SqlDataSource1.DataBind();



при f5
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

Source Error: 


Line 151:            //@IdDep = DropDownList2.Text;
Line 152:          //  SqlDataSource1.SelectCommand = "SELECT [Name1], [Name2], [Name3], [DatBirt], [IdWorker], [DatWork], [post], [IdDep] FROM [Worker] WHERE ([IdDep] = Convert.ToString(DropDownList2.Value))";
Line 153:           SqlDataSource1.SelectParameters[7].DefaultValue = DropDownList2.Text;
Line 154:           SqlDataSource1.DataBind();
...
Рейтинг: 0 / 0
15.02.2012, 14:04:45
    #37662972
aswell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
фильтрация в GridView через DropDownList
вставьте в Select

[IdDep] FROM [Worker] WHERE Worker.IdDep= ISNULL(@IdDep,Worker.IdDep)

а потом займитесь своими делами.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / фильтрация в GridView через DropDownList / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]