Reputation: 99
How can I create an empty list and put all items to the list with several control Here is the items that I want to put in the list;
var memberAdminOrMajor = Db.Members
.Where(m => m.MemberType == MemberTypeForReeve.BelediyeBaskani)
.OrderBy(m => m.Id)
.Select(m => m.Mail)
.ToList();
var memberBM = Db.Members
.Where(m => m.MemberType == MemberTypeForReeve.SahaElemanı)
.OrderBy(m => m.Id)
.Select(m => m.Mail)
.ToList();
I have tried something like this for getting items to dropdownlist ;
var list = new List<DropDownListItem>();
var MembersForDrop = Db.Members.OrderBy(o => o.Sira)
.Where(p=>p.MemberType == (MemberTypeForReeve)2);
foreach (var temp in MembersForDrop)
{
list.Add(new DropDownListItem()
{
Text = temp.Name + "." + temp.SurName,
Value = temp.Id
});
}
how Can I get memberAdminOrMajor
and memberBM
Upvotes: 3
Views: 264
Reputation: 14741
Assuming you need both list in single view. So create a view model which contains your lists and other data:
public class MyViewModel
{
public IEnumerable<SelectListItem> MemberAdminOrMajors { get; set; }
public IEnumerable<SelectListItem> MemberBMs { get; set; }
public int SelectedAdmin {get; set;}
public int SelectedBM {get; set; }
// other data
}
In your action method fill the view model and pass to view:
public ActionResult MyAction()
{
var model=new MyViewModel
{
MemberAdminOrMajors = Db.Members
.Where(m => m.MemberType == MemberTypeForReeve.BelediyeBaskani)
.OrderBy(m => m.Id)
.Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id });
MemberBMs= Db.Members
.Where(m => m.MemberType == MemberTypeForReeve.SahaElemanı)
.OrderBy(m => m.Id)
.Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id });
// collectiong other data
}
return View(model);
}
View:
@model MyNamespace.MyViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(model => model.SelectedAdmin, Model.MemberAdminOrMajors)
@Html.DropDownListFor(model => model.SelectedBM, Model.MemberBMs)
<input type="submit" value="submit" class="btn btn-default" />
}
Now if you have a post back action like this you could get user selected values:
[HttpPost]
public ActionResoult MyAction(MyViewModel model)
{
var adminId = model.SelectedAdmin;
var bmId = model.SelectedBM;
// rest of code
}
But if you want marge 2 list in 1 list you could write:
var newList=Db.Members
.Where(m => m.MemberType == MemberTypeForReeve.BelediyeBaskani
|| m.MemberType == MemberTypeForReeve.SahaElemanı)
.OrderBy(m => m.Id)
.Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id })
.ToList();
You could also concat
to list:
var newList=memberAdminOrMajor.Concat(memberBM)
.Select(m => new SelectListItem{ Text=m.Mail, Value=m.Id });
Upvotes: 1
Reputation: 2907
I believe what you are looking for is a select list; and then you are not far off.
var MembersForDrop =
Db.Members
.OrderBy(o => o.Sira)
.Where(p=>p.MemberType == (MemberTypeForReeve)2)
.Select(m => new SelectListItem() { Text = string.Format("{0}.{1}", m.Name, m.Surname), Value = m.Id});
SelectList sl = new SelectList(MembersForDrop);
Upvotes: 0