Как связать Список с ComboBox?

Аое. Вы не создаете форму или POST с несколькими частями, вы просто вставляете необработанный JSON в тело POST. PHP не расшифрует это и поэтому не будет заполнять

Аое. Вы не создаете форму или POST с несколькими частями, вы просто вставляете необработанный JSON в тело POST. PHP не расшифрует это и поэтому не будет заполнять [111] чем-либо.

Необработанное тело POST будет доступно в специальном потоке php://input , и его можно поймать и декодировать следующим образом:

$rawPost = file_get_contents('php://input');
$decodedPost = json_decode($rawPost);
$image = $decodedPost->image;

Если вы хотите, чтобы PHP обрабатывал Исходя из запроса, вы захотите выяснить, как заставить ваш JavaScript сделать правильный multipart/form-data POST. В качестве бонуса, вы можете просто загрузить изображение как есть, не используя его, что сэкономит вам 25% от размера вашего запроса, и PHP запишет его в временный файл вместо памяти.

POST
чем-либо.

Необработанное тело POST будет доступно в специальном потоке php://input , и его можно поймать и декодировать следующим образом:

[110]

Если вы хотите, чтобы PHP обрабатывал Исходя из запроса, вы захотите выяснить, как заставить ваш JavaScript сделать правильный multipart/form-data POST. В качестве бонуса, вы можете просто загрузить изображение как есть, не используя его, что сэкономит вам 25% от размера вашего запроса, и PHP запишет его в временный файл вместо памяти.

100
задан Jimi 14 December 2018 в 00:59
поделиться

4 ответа

Поскольку Вы обращаетесь к полю комбинированного списка, я предполагаю, что Вы не хотите использовать привязку данных с 2 путями (если так, взгляд на использование a BindingList)

public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }
    public Country(string _name)
    {
        Cities = new List<City>();
        Name = _name;
    }
}



List<Country> countries = new List<Country> { new Country("UK"), 
                                     new Country("Australia"), 
                                     new Country("France") };

bindingSource1.DataSource = countries;

comboBox1.DataSource = bindingSource1.DataSource;

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";

Найти страну выбрало в связанном поле комбинированного списка, Вы сделали бы что-то как: Country country = (Country)comboBox1.SelectedItem;.

Если Вы захотите, чтобы ComboBox динамично обновил, то необходимо будет удостовериться, что структура данных, которую Вы установили как DataSource реализации IBindingList; одна такая структура BindingList<T>.


Подсказка: удостоверьтесь, что Вы связываете DisplayMember к Свойству на классе и не общедоступном поле. Если Вы классифицируете использование public string Name { get; set; } это будет работать, но если это использует public string Name; это не сможет получить доступ к значению и вместо этого отобразит тип объекта для каждой строки в поле комбинированного списка.

148
ответ дан DaveInCaz 24 November 2019 в 04:51
поделиться
public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }

    public Country()
    {
        Cities = new List<City>();
    }
}

public class City 
{
    public string Name { get; set; } 
}

List<Country> Countries = new List<Country>
{
    new Country
    {
        Name = "Germany",
        Cities =
        {
            new City {Name = "Berlin"},
            new City {Name = "Hamburg"}
        }
    },
    new Country
    {
        Name = "England",
        Cities =
        {
            new City {Name = "London"},
            new City {Name = "Birmingham"}
        }
    }
};
bindingSource1.DataSource = Countries;
member_CountryComboBox.DataSource = bindingSource1.DataSource;
member_CountryComboBox.DisplayMember = "Name";
member_CountryCombo

Box.ValueMember = "Name";

Это - код, который я использую теперь.

0
ответ дан Jimi 24 November 2019 в 04:51
поделиться

Для краткого описания существует 2 способа использовать Поле комбинированного списка/Поле списка

1) Добавьте Объекты Страны к свойству Items и получите Страну как Selecteditem. Для использования этого, необходимо переопределить ToString Страны.

2) Используйте DataBinding, установите DataSource на IList (Список <>) и используйте DisplayMember, ValueMember и SelectedValue

Для 2) Вас будет нуждаться в списке стран сначала

// not tested, schematic:
List<Country> countries = ...;
...; // fill 

comboBox1.DataSource = countries;
comboBox1.DisplayMember="Name";
comboBox1.ValueMember="Cities";

И затем в SelectionChanged,

if (comboBox1.Selecteditem != null)
{
   comboBox2.DataSource=comboBox1.SelectedValue;

}
25
ответ дан Henk Holterman 24 November 2019 в 04:51
поделиться

Попробуйте что-то вроде этого:

yourControl.DataSource = countryInstance.Cities;

И если Вы будете использовать WebForms, то необходимо будет добавить эту строку:

yourControl.DataBind();
0
ответ дан Andrew Hare 24 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: