[英]How to show the selected value from the drop down list and show it in gridview
[英]DisplayFor() to show what was selected from a drop down list
所以下拉列表有值/文本。 該值是我存儲在數據庫中的值(因為它是列出要在下拉列表中顯示的值/文本的表的主鍵)。 當我填充我的下拉列表時,我使用值/文本。 當用戶選擇時,它將值(數字)存儲到事務表中。 這意味着當我將它讀回我的 model 時,我得到的是數值而不是文本。 但是,在選擇 24 小時后,我只需要顯示文本,因為它們無法進行更改。 問題是它顯示值 (1, 2, 3, 4) 而不是對人類更有意義的實際文本。
有沒有辦法在視圖級別轉換它? 我問的原因是因為我的模板分支並充當顯示模板和編輯器模板,因為這是頁面所需的功能。 因此,我可以通過以下方式輕松地在編輯器模板部分中顯示所選值:
@Html.DropDownListFor(modelItem => item.RecordType, new SelectList(Model.RecordTypes, "RECORD_TYPE_ID", "RECORD_TYPE", item.RecordType)
但顯示部分有:
@Html.DisplayFor(modelItem => item.RecordType)
這給了我價值數字而不是文本。 我真的必須在我的視圖 model 中創建另一個字段並為每條記錄填充文本和值嗎? 正如您從 DropDownListFor() 中看到的那樣,我有存儲值/文本的 RecordTypes 列表,所以我可以使用該值查找文本並通過 DisplayFor() 或其他 function 從模板視圖中顯示它嗎?
一種替代方案可能是:
@Html.DisplayFor(modelItem =>
Model.RecordTypes.FirstOrDefault(rt => rt.RECORD_TYPE_ID == item.RecordType))
更新:正如評論中所述,正確的方法最終是:
@Model.RecordTypes.FirstOrDefault(rt => rt.RECORD_TYPE_ID == item.RecordType).RECORD_TYPE.ToString()
它只顯示字符串值。
@Html.LabelFor(m => m.Action)
@Html.DisplayFor(m => m.ActionTypes.FirstOrDefault(c => c.Value == m.Action.ToString()).Text)
這非常有效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.