Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / GridView содержащий два DropDownLista / 5 сообщений из 5, страница 1 из 1
23.04.2010, 21:13
    #36595801
x_airat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GridView содержащий два DropDownLista
В 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
24.04.2010, 01:39
    #36595998
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GridView содержащий два DropDownLista
уберите SelectedValue='<%# Bind("id_UF")%>'
...
Рейтинг: 0 / 0
25.04.2010, 13:20
    #36596810
x_airat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GridView содержащий два DropDownLista
Если я уберу SelectedValue='<%# Bind("id_UF")%>, то какой смысл GridView если он будет сбрасывать выбранный элемент при каждом редактировании, и как это поможет проблеме
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.07.2015, 00:23
    #38999439
Dmitriy1984
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GridView содержащий два DropDownLista
Такая же ситуация.
Gridview. В режиме редактирования два dropdownlist. Второй должен биндится по событию первого.
...
Рейтинг: 0 / 0
04.07.2015, 11:07
    #38999549
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GridView содержащий два DropDownLista
Dmitriy1984,
Ajax или перегружать весь грид
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / GridView содержащий два DropDownLista / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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