Zdravím, omlouvám se asi za triviální otázku, ale nemohu se dopátrat řešení. Zkouším dle návodu (aplikace NerdDinner - ofic. stránky + benevolentí překlad na programujte.com) implementovat Html.DropDownListFor. Každý pokus končí chybou při zobrazení stránky (typově: problém s IEnumerable, neplatné argumenty, PInvoke apod.) Mám tabulky, mezi nimiž je vztah (klasicky číselník), tj. 1) Tabulka CREATE TABLE [dbo].[Credential]( [intCredentialId] [int] IDENTITY(1,1) NOT NULL, [strCredentialName] [nvarchar](50) NOT NULL, [strCredentialDescription] [nvarchar](50) NULL, [intNewLineTypeId] [int] NOT NULL,... 2) Číselník CREATE TABLE [dbo].[ListNewLineType]( [intNewLineTypeId] [int] IDENTITY(1,1) NOT NULL, [strKey] [nvarchar](50) NOT NULL, [strValue] [nvarchar](50) NOT NULL, [strDescription] [nvarchar](255) NULL, [dateCreated] [date] NOT NULL, CONSTRAINT [PK_ListNewLineType] PRIMARY KEY CLUSTERED.... Relace je tvořena přes "[intNewLineTypeId]" V aplikaci mám přidaný DBML soubor (DataContext). Jak mám modifikovat Controller (metodu Create/Edit kde volám řádek na nastavení "ViewData") a šablonu, aby mi fungoval DropDownListFor? Pro úplnost přikládám pár kandidátů, které se mi nepodařilo rozchodit:
//ListNewLineTypeRepository myListNewLineTypeRepository = new ListNewLineTypeRepository();
//ViewData["ListNewLineType"] = new SelectList(myListNewLineTypeRepository.FindAllListNewLineTypes().ToList(),
// "strKey", "strValue", 1).ToList();
//ListNewLineTypeRepository myListNewLineTypeRepository = new ListNewLineTypeRepository();
//ViewData["ListNewLineType"] = new SelectList(myListNewLineTypeRepository.FindAllListNewLineTypes().ToList(), "strKey", "strValue");
//myListNewLineTypeRepository.FindAllListNewLineTypes().Select(
// b => new SelectListItem { Value = b.strKey, Text = b.strValue });
//DataContext datacontext = new DataContext();
//var a = (from m in datacontext.ListNewLineTypes
// select new SelectListItem { Text = m.strKey.ToString(), Value = m.strValue.ToString() });
//ViewData["ListNewLineType"] = new SelectList(
// (IEnumerable<string>)myCredential.ListNewLineType, myCredential.ListNewLineType);
//var states = new SelectList((System.Collections.IEnumerable)ViewData["States"], "Value", "Text");
//ViewData["ListNewLineType"] = new SelectList(myCredential.ListNewLineType, myCredential.intNewLineTypeId);
----------------------------
' TOTO SE VYPÍŠE ČÍSLEM, TJ. HODNOTA JE NAPLNĚNÁ
<%: Html.LabelFor(model => model.intNewLineTypeId) %>
<%= Html.DropDownList("intNewLineTypeId", ViewData["ListNewLineType"] as SelectList) %>
<%: Html.DropDownList("ListNewLineTypes", Model.ListNewLineType %>
<%: Html.DropDownList("ListNewLineTypes", new SelectList(Model.ListNewLineType, "intListNewLineTypeId", "stValue")) %>
<%: Html.DropDownListFor(model => model.ListNewLineType, new SelectList(Model.ListNewLineType, "strKey", "stValue"))%>
Děkuji, Petr
|