Member 13191952 Ответов: 1

Заполните выпадающий список с помощью другого выпадающего списка


Привет,
Я хотел бы знать, как заполнить выпадающий список, когда вы выбираете значение в другом выпадающем списке, связанном с базой данных, я знаю, что это обычное дело, но я не знаком с функциями в этом списке. Asp.net-да.

Заранее спасибо

Что я уже пробовал:

Привет,
Я хотел бы знать, как заполнить выпадающий список, когда вы выбираете значение в другом выпадающем списке, связанном с базой данных, я знаю, что это обычное дело, но я не знаком с функциями в этом списке. Asp.net-да.

Заранее спасибо

F-ES Sitecore

google "asp.net каскадный выпадающий список" - множество учебных пособий о том, как это сделать.

Member 13191952

хорошо спасибо

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

То, что вам нужно, называется "каскадный выпадающий список". Вот несколько статей, которые я нашел в сети:

ASP.NET веб-формы: Создание каскадных выпадающих списков в ASP.Net
ASP.NET с помощью jQuery : Каскадные выпадающие списки с помощью jQuery и ASP.NET
ASP.NET с AJAXControlToolkit: Пример каскадного выпадающего списка AJAX с использованием базы данных ASP.Net
ASP.NET MVC: Создание каскадного выпадающего списка в MVC с использованием Entity Framework и ADO.NET

Основываясь на приведенных выше ссылках, существует множество способов реализации каскадного выпадающего списка. В контексте ASP.NET WebForms, вы могли бы либо использовать jQuery/JavaScript AJAX, используйте CascadingDropDown управление от AJAXControlToolkit или вручную сделать это на сервере. Вот быстрая реализация на стороне сервера с использованием ADO.NET путь:

 private string GetConnectionString()
 {
    //calling up the connection string that was set up from the web config file
     return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
 }

 private void BindDropDownList1()
 {
     DataTable dt = new DataTable();
     SqlConnection connection = new SqlConnection(GetConnectionString());
     try
     {
         connection.Open();
         string sqlStatement = "SELECT ColumnName * FROM TableName";
         SqlCommand sqlCmd = new SqlCommand(sqlStatement, connection);
         SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
         sqlDa.Fill(dt);
         if (dt.Rows.Count > 0)
         {
             DropDownList1.DataSource =dt;
             DropDownList1.DataTextField = "ColumnName"; // the items to be displayed in the list items
             DropDownList1.DataValueField = "ColumnName"; // the id of the items displayed
             DropDownList1.DataBind();
         }
     }
     finally
     {
         connection.Close();
     }
 }

 private void BindDropDownList2(string field)
 {
     DataTable dt = new DataTable();
     SqlConnection connection = new SqlConnection(GetConnectionString());
     try
     {
         connection.Open();
         string sqlStatement = "SELECT * FROM Table WHERE ColumnName = @Value1";
         SqlCommand sqlCmd = new SqlCommand(sqlStatement, connection);
         sqlCmd .Parameters.AddWithValue("@Value1", field)
         SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
         sqlDa.Fill(dt);
         if (dt.Rows.Count > 0)
         {
             DropDownList2.DataSource =dt;
             DropDownList2.DataTextField = "ColumnName"; // the items to be displayed in the list items
             DropDownList2.DataValueField = "ColumnName"; // the id of the items displayed
             DropDownList2.DataBind();
         }
     }
     finally
     {
         connection.Close();
     }
 }

protected void Page_Load(object sender, EventArgs e)
{
     if (!IsPostBack)
     {
         BindDropDownList1();
     }
 }

protected void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{

   BindDropDownList2(DropDownList1.SelectedItem.Text);

}


Идея состоит в том, чтобы передать выбранное значение элемента, когда выбор производится из dropdownlist и используйте это значение для запроса вашей базы данных и повторного заполнения вашей второй базы данных. dropdownlist с соответствующими данными.