我有一個Html.ListBox的小問題。Html.ListBox()和MultiselectList
我正在開發ASP.NET MVC 1.0中的個人博客,並創建了一個adminpanel
,我可以在其中添加和編輯帖子! 在這兩個操作中,我可以添加標籤。
我想用一個Html.ListBox()
助手列出所有標籤,所以我可以選擇多個標籤添加到帖子中!問題不在於添加模式,而是在編輯模式下,我必須預先選擇帖子的標籤。
我讀過我必須使用MultiSelectList
等構造函數pass,tags'list和tag's list(預選值)。
但我不知道如何使用這個類。
我後,一些代碼:
這是我的模型方法獲得選擇列表的所有列表標籤
public IEnumerable<SelectListItem> GetTagsListBox()
{
return from t in db.Tags
orderby t.IDTag descending
select new SelectListItem {
Text = t.TagName,
Value = t.IDTag.ToString(),
};
}
所以在編輯(get和post),添加(Get和郵政)我用ViewData在Html.ListBox()
中傳遞此列表。
ViewData["Tags"] = tagdb.GetTagsListBox();
在我看來
<%=Html.ListBox("Tags",ViewData["Tags"] as SelectList) %>
所以用這個代碼,它在添加模式下確定。
但在編輯模式下,我需要預先選擇這些值。
所以,現在,我必須創建一個方法來獲取所有tagsbypostid。
然後在ViewData
必須通過什麼?
有什麼建議嗎?
是的,但是通過這種方式,它選擇了所有標籤,我需要預先選擇所有標籤。例如,如果標籤是c#,mvc在我的列表框中我想只看到這個標籤預選,然後其他所有標籤沒有選擇。對不起,感嘆號。 – Ivan90 2010-05-14 21:47:57
您需要使用循環設置該帖子標籤的「Selected」屬性。 – SLaks 2010-05-14 21:49:16
所以,我可以使用選擇新的SelectListItem一個循環迭代由PostID的標籤列表,並foreach項屬性爲true? – Ivan90 2010-05-14 21:53:15