powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / GridView содержащий два DropDownLista
5 сообщений из 5, страница 1 из 1
GridView содержащий два DropDownLista
    #36595801
x_airat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В GridView содержится два DropDоwnList. Оба биндятся к разным SqlDataSource. Я хочу в строке GridView(в режиме редактирования) при выборе значения из первого дроплиста, чтобы значения второго дроплиста отфильтровалось по значению первого дроплиста. У второго DropDоwnLista в SqlDataSource4 селект запрос с параметром. Так вот все поля корректно биндятся, но при вызове у первого дроплиста метода onselectedindexchanged="dlist2_SelectedIndexChanged" выходит ошибка:
Методы привязки данных, например, Eval(), XPath() и Bind(), можно использовать только в контексте элемента управления с привязкой к данным.
Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
    <asp:GridView ID="GridView1" runat="server" 
            AutoGenerateColumns="False" CellPadding="4" 
            DataKeyNames="id"         
            DataSourceID="SqlDataSource2">        
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:TemplateField HeaderText="id" InsertVisible="False" 
                    SortExpression="id" Visible="False">
                    <EditItemTemplate>
                        <asp:Label ID="Label1" runat="server" 
                            Text='<%# Eval("id") %>'></asp:Label>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" 
                            Text='<%# Bind("id") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="id_UF" 
                    SortExpression="id_UF">
                    <EditItemTemplate>

                         <asp:DropDownList id="id_UF" runat="server"
                                            DataSourceID="SqlDataSource3"
                                            DataTextField="fldFacultyLongName" DataValueField="id_UF"
                                            SelectedValue='<%# Bind("id_UF")%>'
                                            onselectedindexchanged="dlist2_SelectedIndexChanged" 
                                            AutoPostBack="true"
                                            >
                        </asp:DropDownList>

                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" 
                            Text='<%# Bind("fldFacultyLongName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="id_UCG" 
                    SortExpression="id_UCG">

                    <EditItemTemplate>
                         <asp:DropDownList id="dlist1" runat="server"
                                            DataSourceID="SqlDataSource4"
                                            DataTextField="fldCmpName" DataValueField="id_UCG"
                                            SelectedValue='<%# Bind("id_UCG")%>'                                           
                                            >
                        </asp:DropDownList>
                    </EditItemTemplate>

                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" 
                            Text='<%# Bind("fldCmpName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>           
        </asp:GridView>


        <asp:HiddenField ID="c_id_UF" runat="server" />
        <asp:SqlDataSource ID="SqlDataSource4" runat="server" 
            ConnectionString="<%$ ConnectionStrings:AbiturientDBConnectionString2 %>" 
            SelectCommand="SELECT [id_UCG], [id_UF], [fldCmpName] FROM [sprUniverCmpGroup] WHERE ([id_UF] = @id_UF)">
            <SelectParameters>
                <asp:ControlParameter ControlID="c_id_UF" Name="id_UF" 
                    PropertyName="Value" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:AbiturientDBConnectionString2 %>" 
            SelectCommand="SELECT [id_UF], [fldFacultyLongName] FROM [sprUniverFaculty]">
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:AbiturientDBConnectionString2 %>" 
            SelectCommand="SELECT [id], [id_UF], [id_UCG], [id_AD], [fldFacultyLongName], [fldCmpName] FROM [sysContentsNames]"
            UpdateCommand="UPDATE sysContentsNames SET id=1 where id is NULL" >

Вот метод для DropDownList id="id_UF"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
   protected void dlist2_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = GridView1.EditIndex; 
           //тут я меняю параметр для источника данных второго дроплиста
            c_id_UF.Value = ((DropDownList)GridView1.Rows[i].Cells[2].Controls[1]).SelectedValue;
 
            SqlDataSource4.DataBind(); //а тут уже вываливается эта ошибка (если не биндить то все равно выведит ошибку ну чуть позже)
       }
...
Рейтинг: 0 / 0
GridView содержащий два DropDownLista
    #36595998
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уберите SelectedValue='<%# Bind("id_UF")%>'
...
Рейтинг: 0 / 0
GridView содержащий два DropDownLista
    #36596810
x_airat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я уберу SelectedValue='<%# Bind("id_UF")%>, то какой смысл GridView если он будет сбрасывать выбранный элемент при каждом редактировании, и как это поможет проблеме
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
GridView содержащий два DropDownLista
    #38999439
Dmitriy1984
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая же ситуация.
Gridview. В режиме редактирования два dropdownlist. Второй должен биндится по событию первого.
...
Рейтинг: 0 / 0
GridView содержащий два DropDownLista
    #38999549
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy1984,
Ajax или перегружать весь грид
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / GridView содержащий два DropDownLista
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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