Добавление пользовательских параметров в выпадающем списке в asp.net - PullRequest
1 голос
/ 05 апреля 2010

У меня есть связанный выпадающий список, заполненный таблицей имен с помощью выбора и привязки данных. он стреляет выбранным в обмен на то, что (через обратную передачу) обновляет определенный вид сетки.

Что происходит, так как это происходит из-за изменения индекса, тот, который всегда выбирается (александр), может быть выбран только мной, если вы выберете другой, затем выберите александра. бедный александр.

То, что я хочу, это поставить параметр бланка в начале (по умолчанию) и (если возможно) параметр в качестве второго.

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

Ответы [ 2 ]

3 голосов
/ 06 апреля 2010

Установите для свойства AppendDataBoundItems значение True. Добавьте свой бланк, затем привязку данных.

ddl.AppendDataBoundItems = true;
ddl.Items.Add("Choose an item");
ddl.DataSource = foo;
ddl.DataBind();

Свойство AppendDataBoundItems позволяет добавлять элементы в Объект ListControl перед данными привязка происходит. После привязки данных, коллекция предметов содержит как элементы из источника данных и тому ранее добавленные предметы.

0 голосов
/ 06 апреля 2010
        protected void SetAddrList()
    {
        TestDataClassDataContext dc = new TestDataClassDataContext();
        dc.ObjectTrackingEnabled = false;

        var addList = from addr in dc.Addresses
                      from eaddr in dc.EmployeeAddresses
                      where eaddr.EmployeeID == _curEmpID && addr.AddressID == eaddr.AddressID && addr.StateProvince.CountryRegionCode == "US"
                      select new
                      {
                          AddValue = addr.AddressID,
                          AddText = addr.AddressID,
                      };
        if (addList != null)
        {
            ddlAddList.DataSource = addList;
            ddlAddList.DataValueField = "AddValue";
            ddlAddList.DataTextField = "AddText";
            ddlAddList.DataBind();
        }

        ddlAddList.Items.Add(new ListItem("<Add Address>", "-1"));
    }

Я создал этот пример кода с использованием приключенческих работ, чтобы немного попрактиковаться с Linq, и он очень похож на предыдущий ответ. Использование linq все равно не должно иметь значения для ответа: последний dddlAddList.Items.Add - это то, что вам нужно. «Добавить адрес» = первый выбранный параметр и -1 = значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...