Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как динамически создать два DropDownList? / 4 сообщений из 4, страница 1 из 1
26.09.2011, 14:08:35
    #37455861
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как динамически создать два DropDownList?
Добрый день!
Такая задача у меня :
На форме есть два DropDownList, каждый привязан к своему ObjectDataSource. При загрузке страницы оба заполняются данными - первый выводит марки автомобилей, второй должен выводить модели. Нужно, чтобы это было динамически - при смене значения в листе марок, лист моделей заполнялся динамически. Сделал так, но второй лист выводит значения только при первой загрузке страницы. При смене значения в первом - второй лист оказывается пустой. Вот код :
.aspx :
Код: 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.
</h3>
        <asp:Label ID="Label1" runat="server" Text="Марка  :"></asp:Label>
 
        <asp:DropDownList ID="DDL_Brands" runat="server" 
            DataSourceID="ObjectDataSource1" Height="25px" Width="182px" 
            DataTextField="brandOfCar" DataValueField="brandOfCar">
            <asp:ListItem></asp:ListItem>
        </asp:DropDownList>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
            SelectMethod="GetBrands_DDL" TypeName="AutoCatalog.InsertDB" 
            onselected="ObjectDataSource1_Selected">
        </asp:ObjectDataSource>
        <br />
        Модель  : 
        <asp:DropDownList ID="DDL_Models" runat="server" 
            DataSourceID="ObjectDataSource2" DataTextField="BrandOfCar" 
            DataValueField="BrandOfCar" Height="19px" Width="181px">
        </asp:DropDownList>
         <asp:ObjectDataSource ID="ObjectDataSource2" 
            runat="server" SelectMethod="GetModels_DDL" TypeName="AutoCatalog.InsertDB">
            <SelectParameters>
                <asp:ControlParameter ControlID="DDL_Brands" Name="brandOfCar" 
                    PropertyName="SelectedValue" Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
методы :
Код: 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.
public class InsertDB
    {
        List<InsertDetails> ListModels;
        List<InsertDetails> ListBrands;    
   
            public List<InsertDetails> GetBrands_DDL()
            {
                SqlConnection connection = Connection.Create();
                SqlCommand cmd = new SqlCommand("GetBrands_DDL", connection);
                cmd.CommandType = CommandType.StoredProcedure;
                ListBrands = new List<InsertDetails>();

                try
                {
                    connection.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        InsertDetails insertDetails = new InsertDetails((string)reader["brandOfCar"]);
                        ListBrands.Add(insertDetails);
                    }

                    reader.Close();
                    return ListBrands;
                }
                catch (SqlException err)
                {
                    throw new ApplicationException("Data error Get Brands_DDL.");
                }
                finally
                {
                    connection.Close();
                }
            }


            public List<InsertDetails> GetModels_DDL(string brandOfCar)
            {
                SqlConnection connection = Connection.Create();
                SqlCommand cmd = new SqlCommand("GetModels_DDL", connection);
                cmd.CommandType = CommandType.StoredProcedure;
                ListModels = new List<InsertDetails>();

                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("brandOfCar", System.Data.SqlDbType.NVarChar, 30));
                cmd.Parameters["brandOfCar"].Value = brandOfCar;

                try
                {
                    connection.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        InsertDetails insertDetails = new InsertDetails((string)reader["nameModel"]);
                        ListModels.Add(insertDetails);
                    }

                    reader.Close();
                    return ListModels;
                }
                catch (SqlException err)
                {
                    throw new ApplicationException("Data error Get Models_DDL.");
                }
                finally
                {
                    connection.Close();
                }
           }
    }
Подскажите, пожалуйста, как правильно сделать?
Заранее благодарен!
...
Рейтинг: 0 / 0
26.09.2011, 15:11:19
    #37455870
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как динамически создать два DropDownList?
http://www.sql.ru/forum/afsearch.aspx?s=%F1%F2%F0%E0%ED%FB+%E3%EE%F0%EE%E4%E0&submit=%CD%E0%E9%F2%E8&bid=19]поиск по словам страны и города
...
Рейтинг: 0 / 0
26.09.2011, 15:59:42
    #37455975
AHTOH_L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как динамически создать два DropDownList?
...
Рейтинг: 0 / 0
26.09.2011, 22:53:53
    #37456511
erman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как динамически создать два DropDownList?
Проблема решена, спасибо. Нужно было AutoPostBack включить!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как динамически создать два DropDownList? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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