簡體   English   中英

從強類型列表中填充DropDownlist

[英]Populating a DropDownlist From a Strongly Typed List

我從一個強類型的列表中填充了一個DropDownList ,並且工作正常。問題是我想先連接列表中的兩個字段,然后將它們放在下拉列表中,即FirstName + LastName。嘗試了一些沒有成功的事情,所以有人可以給這個新手一點幫助。

這是我在做什么的一個例子。

private List<Customer> _CustomerList = new List<Customer>();

ddlCustomer.DataSource = _CustomerList;
ddlCustomer.DataTextField = "FirstName";
ddlCustomer.DataValueField = "CustomerKey";
ddlCustomer.DataBind();

這行得通,但是我需要首先和最后一起使用,並且我無法Customer對象中處理該數據。

嘗試使用動態創建的匿名對象的枚舉。

var _CustomerList = customers.Select( c => new {
                                         Name = c.FirstName + " " + c.LastName,
                                         Key = c.CustomerKey
                                    });


ddlCustomer.DataSource = _CustomerList;
ddlCustomer.DataTextField = "Name";
ddlCustomer.DataValueField = "Key";
ddlCustomer.DataBind();

您可能必須在Select之后添加ToList(),但是我認為您可以綁定到IEnumerable<T>

PS此示例需要.Net 3.5框架

您可以在Customer類中創建一個將FirstName和LastName連接在一起的屬性,並且可以在ddlCustomer.DataTextField中使用該屬性。

我尚未找到解決此問題的好方法。 我發現以下方法可以最好地發揮作用:

  • 創建圍繞Customer的包裝器類(如果可能,從Customer繼承,或創建一個包含Customer對象並公開其他屬性的全新類。

  • 在NEW類中創建一個屬性,該屬性將您希望數據綁定的兩個字段連接在一起。

  • 將下拉列表綁定到您的自定義對象的列表。

要從基礎數據對象中分離出UI表示形式,可以圍繞Customer創建一個包裝對象,例如CustomerForUI,具有一個名為FullName的單個屬性-然后將一個CustomerForUI對象列表放入UI中。

就像是:

public class CustomerForUI
{
    private string _FullName;

    public CustomerForUI(Customer c)
    {
       _FullName = c.FirstName + " " + c.LastName;
    }

    public string FullName
    {
       get {return _FullName;}
    }

    public string CustomerKey
    {  ... }
}

並構造一個名為_UIList的CustomerForUI對象的列表,並:

ddlCustomer.DataSource = __UIList;
ddlCustomer.DataTextField = "FullName";
ddlCustomer.DataValueField = "CustomerKey";
ddlCustomer.DataBind();

有沒有原因導致您無法手動建立下拉列表中的列表項? 由於您已經在代碼中進行此操作,所以我不明白為什么不這樣做。

只需枚舉您的業務對象,並使用:

ddlCustomer.Items.Add(new ListItem("text" , "value"));

其中text是串聯在一起的名字和姓氏。

我同意ScottE ...這似乎是最簡單的方法,並且要減少一個對象。

C# 強類型ConfigurationBuilder列表<object>從應用設置<div id="text_translate"><p>真的在為這個苦苦掙扎——它應該這么難嗎?!</p><p> 我的 appsettings 中有一個簡單的 object 數組:</p><pre> "AppSettings": { "Names": [ { "Id": "1", "Name": "Mike" }, { "Id": "2", "Name": "John" } ] }</pre><p> 然后我有一個 class</p><pre> public class AppSettings { public List&lt;Names&gt; Names { get; set; } = new List&lt;Names&gt;(); } public class Names { public string Id { get; set; } public string Name { get; set; } }</pre><p> 我在我的應用設置中讀到:</p><pre> var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json").Build(); var config = new AppSettings();</pre><p> 這就是出錯的地方:</p><pre> config.Names = configuration.GetSection("AppSettings:Names") //&lt;&lt;&lt;&lt; what do I do here?</pre><p> 似乎它都與IConfigurationSection相關,這沒有幫助。</p></div></object>

[英]C# strongly typed ConfigurationBuilder List<object> from appsettings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 在實體查詢的強類型LINQ中填充列表 從強類型視圖發回 DropDownList 從列表填充剃須刀下拉列表 <object> 在MVC中 從視圖返回填充列表的強類型列表? 似乎無法從數組反序列化為強類型列表對象 C# 強類型ConfigurationBuilder列表<object>從應用設置<div id="text_translate"><p>真的在為這個苦苦掙扎——它應該這么難嗎?!</p><p> 我的 appsettings 中有一個簡單的 object 數組:</p><pre> "AppSettings": { "Names": [ { "Id": "1", "Name": "Mike" }, { "Id": "2", "Name": "John" } ] }</pre><p> 然后我有一個 class</p><pre> public class AppSettings { public List&lt;Names&gt; Names { get; set; } = new List&lt;Names&gt;(); } public class Names { public string Id { get; set; } public string Name { get; set; } }</pre><p> 我在我的應用設置中讀到:</p><pre> var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appSettings.json").Build(); var config = new AppSettings();</pre><p> 這就是出錯的地方:</p><pre> config.Names = configuration.GetSection("AppSettings:Names") //&lt;&lt;&lt;&lt; what do I do here?</pre><p> 似乎它都與IConfigurationSection相關,這沒有幫助。</p></div></object> 將強類型列表添加到數據庫 強類型List.GroupBy() 將強類型列表公開? Linq強類型嵌套列表
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM