Добавление статических элементов и результатов с помощью Visual C# из привязки данных в элемент управления DropDownList

В этой статье показано, как добавлять статические элементы и привязанные к данным элементы в элемент управления DropDownList. В примере в этой статье элемент управления DropDownList заполняется начальным элементом.

Исходная версия продукта: Visual C#
Исходный номер базы знаний: 312489

Требования

В следующем списке перечислены рекомендуемые оборудование и программное обеспечение, которые вам нужны.

  • Microsoft Windows
  • .NET Framework
  • Visual Studio .NET
  • Службы IIS
  • SQL Server

В этой статье рассматриваются следующие платформа .NET Framework пространства System.Data.SqlClientимен библиотеки классов .

Создание веб-приложения ASP.NET с помощью Visual C#

Чтобы создать веб-приложение ASP.NET с именем DDLSample, выполните следующие действия.

  1. Откройте Visual Studio .NET.
  2. В меню Файл выберите пункт Создать, а затем выберите Проект.
  3. В диалоговом окне Новый проект выберите Проекты Visual C# в разделе Типы проектов, а затем выберите ASP.NET веб-приложение в разделе Шаблоны.
  4. В поле Расположение замените WebApplication1 в URL-адресе по умолчанию на DDLSample. Если вы используете локальный сервер, можно оставить имя сервера как http://localhost , чтобы в поле Расположение отображалось http://localhost/DDLSampleзначение .

Создание примера

На следующих шагах вы создадите .aspx страницу, содержащую элемент управления DropDownList. Элемент управления DropDownList — это данные, привязанные к столбцам Authors таблицы из базы данных SQL Server Pubs.

  1. Чтобы добавить веб-форму в проект, выполните следующие действия:

    1. Щелкните правой кнопкой мыши узел проекта в Обозреватель решений, выберите Добавить, а затем — Добавить веб-форму.
    2. Присвойте DropDown.aspx странице .aspx имя и нажмите кнопку Открыть.
  2. Убедитесь, что страница открыта в режиме конструктора в редакторе. Добавьте на страницу элемент управления DropDownList. В области Свойства измените идентификатор элемента управления на AuthorList.

  3. Добавьте элемент управления Label на страницу после элемента управления DropDownList. В области Свойства измените идентификатор элемента управления на CurrentItem.

  4. Добавьте элемент управления Button на страницу после элемента управления Label. В области Свойства измените идентификатор элемента управления на GetItem, а затем измените свойство Text на Get Item.

  5. Щелкните страницу правой кнопкой мыши и выберите пункт Просмотреть код. Откроется файл класса программной части в редакторе.

  6. System.Data.SqlClient Добавьте пространство имен в файл класса программной части, чтобы пример кода правильно функционировал. Полный список пространств имен должен выглядеть следующим образом.

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    
  7. Добавьте следующий код в Page_Load событие.

    private void Page_Load (object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection myConn = new SqlConnection (
                "Server=localhost;Database=Pubs;Integrated Security=SSPI");
            SqlCommand myCmd = new SqlCommand (
                "SELECT au_id, au_lname FROM Authors", myConn);
            myConn.Open ();
            SqlDataReader myReader = myCmd.ExecuteReader ();
    
            //Set up the data binding.
            AuthorList.DataSource = myReader;
            AuthorList.DataTextField = "au_lname";
            AuthorList.DataValueField = "au_id";
            AuthorList.DataBind ();
    
            //Close the connection.
            myConn.Close ();
            myReader.Close ();
    
            //Add the item at the first position.
            AuthorList.Items.Insert (0, "<-- Select -->");
        }
    }
    

    Чтобы использовать встроенную безопасность в строке подключения, измените файлWeb.config для приложения и присвойте impersonate атрибуту identity элемента конфигурации значение true, как показано в следующем примере.

    <configuration>
        <system.web>
            <identity impersonate="true" />
        </system.web>
    </configuration>
    

    Дополнительные сведения см. в разделе олицетворение ASP.NET.

  8. Измените строка подключения в соответствии с вашей средой.

  9. Перейдите в представление Конструктор в редакторе для страницы .aspx. Дважды щелкните GetItem. Добавьте следующий код в GetItem_Click событие в файл класса программной части.

    private void GetItem_Click (object sender, System.EventArgs e)
    {
        string itemText = AuthorList.SelectedItem.Text;
        string itemValue = AuthorList.SelectedItem.Value;
        CurrentItem.Text = string.Format (
            "Selected Text is {0}, and Value is {1}", itemText, itemValue);
    }
    
  10. В меню Файл выберите Сохранить все , чтобы сохранить веб-форму и другие связанные файлы проекта.

  11. В меню Сборка интегрированной среды разработки Visual Studio .NET выберите Сборка , чтобы выполнить сборку проекта.

  12. В Обозреватель решений щелкните правой кнопкой мыши страницу .aspx и выберите пункт Просмотр в браузере. Обратите внимание, что страница откроется в браузере, а раскрывающийся список заполнен начальными данными.

  13. Выберите элемент в раскрывающемся списке. Обратите внимание, что элемент управления CurrentItem Label отображает выбранный элемент. Кроме того, обратите внимание, что список сохраняет текущую позицию и статическую запись.

Устранение неполадок

  • Необходимо поместить код, чтобы добавить статический элемент в коллекцию ListItem элемента управления после кода привязки данных. Если не добавить код в этом порядке, список создается повторно с кодом привязки данных, который перезаписывает статическую запись.
  • Пример кода проверяет свойство, IsPostBack чтобы предотвратить повторное создание списка. Кроме того, этот код проверяет IsPostBack сохранение выбранного элемента в текущей позиции списка между круговой передачой на сервер.

Ссылки