亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 ASP.NET 中將類綁定到下拉列表

在 ASP.NET 中將類綁定到下拉列表

C#
拉丁的傳說 2022-10-15 15:14:01
我有一個類站點,它有 3 個屬性(設施 ID、設施名稱和設施代碼)。我想知道是否可以將其綁定到下拉列表,以便在選擇一個選項時我可以訪問所有 3 個屬性。出于測試目的,我只是硬編碼 facility_code = "ASV"。List<Site> sites = new List<Site>();string responseString = response.Content.ReadAsStringAsync().Result;sites = JsonConvert.DeserializeObject<List<Site>>(responseString);Site defaultSite = new Site { facility_id = -1, facility_name = "" };sites.Insert(0, defaultSite);sites = sites.Select(x => new Site { facility_id = x.facility_id, facility_name = x.facility_name, facility_code = "ASV" }).ToList();dropDownSites.DataValueField = "facility_id";dropDownSites.DataTextField = "facility_name";dropDownSites.DataSource = sites;dropDownSites.DataBind();下面是我不知道如何訪問每個站點的屬性的地方。我有一條錯誤消息說“無法將類型 ListItem 轉換為站點...)string facilityCode = (dropDownSites.SelectedItem as Site).facility_code.ToString();
查看完整描述

1 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

不,您不能綁定多個屬性。facility_id您必須在 PostBack 之后使用列表中的 SelectedValue 再次找到正確的項目sites。


但是如果你真的想要你可以把所有的屬性放在一個字符串中,把它作為DataValueField,然后在 PostBack 上再次拆分字符串。因此,創建一個額外的屬性,在單個字符串中返回所有屬性。盡管這可行,但它不是最干凈的解決方案。


public class Site

{

    public int facility_id { get; set; }

    public string facility_name { get; set; }

    public string facility_code { get; set; }


    public string facility_DataValueField

    {

        get

        {

            return facility_id + ";" + facility_name + ";" + facility_code;

        }

    }

}

現在您可以將該屬性用作 DataValueField


dropDownSites.DataValueField = "facility_DataValueField";

然后在 PostBack 上,您可以拆分 DataValueField 以再次獲取值。


string [] properties = dropDownSites.SelectedValue.Split(';');


查看完整回答
反對 回復 2022-10-15
  • 1 回答
  • 0 關注
  • 102 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號