Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr Kasnal
Člen
Avatar
Petr Kasnal:31.8.2018 18:51

Ahoj snažím se v MVC aplikaci vytvořit DropDownList, ale mám problém s vybraným prvek, který bych chtěl mít podle příchozího ID. Teď je tam ta 20 jen pro ukázku. Furt se mi tam ukazuje ten první prvek přitom prvek s ID 20 je druhý. Zkoušel jsem to tkhle, ale dělal jsem to i controlleru a označí se mi správny prvek, ale už se mi nevybere. Fakt nevím co s tím. :/ Předem moc děkuji za každou radu.

Zkusil jsem:

@Html.DropDownListFor(x => x.ID_Category, new SelectList(Model.ParentCategories, "ID", "Name", Model.ParentCategories.FirstOrDefault(x => x.ID == 20)), new { id = "category-dropdown" })

Chci docílit: Správného použití.

 
Odpovědět
31.8.2018 18:51
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na Petr Kasnal
Petr Kasnal:31.8.2018 19:56

Ještě doplním:

@Html.DropDownListFor(x => x.ID_Category, new SelectList(Model.ParentCategories, "ID", "Name"), Model.MainParentCategory.Name, new { id = "category-dropdown" })

Todle funguje, ale ten item je tam dvakrát....

 
Nahoru Odpovědět
31.8.2018 19:56
Avatar
Odpovídá na Petr Kasnal
don.jarducius:31.8.2018 22:31

Ahoj, je to tím, že mu nedáváš správnou vybranou hodnotu...
Musíš mu dát ID... což máš jako value … ne text pro uživatele...
viz. https://msdn.microsoft.com/…vs.108).aspx

@Html.DropDownListFor(x => x.ID_Category, new SelectList(Model.ParentCategories, "ID", "Name"), Model.MainParentCategory.ID, new { id = "category-dropdown" })
Nahoru Odpovědět
31.8.2018 22:31
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na don.jarducius
Petr Kasnal:31.8.2018 23:21

Děkuji za odpověď, ale tohle taky bohužel nefunguje.

 
Nahoru Odpovědět
31.8.2018 23:21
Avatar
don.jarducius:1.9.2018 9:46

V tom případě namísto new SelectList(…)
Zkus

@Html.DropDownListFor(x => x.ID_Category, Model.ParentCategories.Select(x=>new SelectListItem() { Value = x.ID, Text = x.Name, Selected = x.ID == 20 }), new { id = "category-dropdown" })
Nahoru Odpovědět
1.9.2018 9:46
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Petr Kasnal
Člen
Avatar
Petr Kasnal:1.9.2018 10:38

Moc ti děkuji za odpověď. Todle funguje stejně jako ten druhý kód jak jsem přidal. Je to tam dvakrát. Viz. příloha

 
Nahoru Odpovědět
1.9.2018 10:38
Avatar
Odpovídá na Petr Kasnal
don.jarducius:1.9.2018 10:49

V tom případě to musí i být v datech 2x … zkontroluj si, co ti přifrčí v Model.ParentCa­tegories, vypadá to totiž, že hledáš chybu na jiném místě...

Nahoru Odpovědět
1.9.2018 10:49
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na don.jarducius
Petr Kasnal:1.9.2018 10:55

Chybu v datech nemám... Vrací mi to správně... V html to vypadá tkhle

 
Nahoru Odpovědět
1.9.2018 10:55
Avatar
Odpovídá na Petr Kasnal
don.jarducius:2.9.2018 11:05

Co je v tom případě 2x a špatně? oba obrázky co jsi poslal ukazují totožná data/html.
Co se zkusit "přilepit" debuggerem a podívat se, co přesně ti přichází za data na straně serveru?
Zkontroluj ID_Category i Model.ParentCa­tegories

Jestli vidím a chápu dobře co chceš, dostává se ti tam navíc prvek

<option value>Nabídka</option>
Nahoru Odpovědět
2.9.2018 11:05
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na don.jarducius
Petr Kasnal:3.9.2018 8:03

Hele zkontroloval jsem to a chodí mi to normálně.... Tak fakt nevím...

 
Nahoru Odpovědět
3.9.2018 8:03
Avatar
don.jarducius:3.9.2018 8:09

Je možný, že ti ten prvek navíc přidává něco na straně clienta… když zkusíš projít odpověď ze serveru než se do toho pustí javascript, je tam ten prvek taky?

Nahoru Odpovědět
3.9.2018 8:09
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Petr Kasnal
Člen
Avatar
Odpovídá na don.jarducius
Petr Kasnal:5.9.2018 21:57

Vrátí to 3 prvky viz. ten screen a na straně clienta to nic neupraví :(

 
Nahoru Odpovědět
5.9.2018 21:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.