I’m dont know how to bind an IDictionary list to a MVC WebGrid. This is what I have so far
public List<IDictionary> GetAddress() { List<IDictionary> names = new List<IDictionary>(); //List<string> names = new List<string>(); using (MVCDBEntities example = new MVCDBEntities()) { var Uus = from U1 in example.Users where U1.Name != null select U1; names = Uus.OfType<IDictionary>().ToList(); } return names; }
I now need to some how bind this to a webgrid, how would I achieve this ?
Hi,
http://forums.asp.net/t/1719060.aspx?Binding+MVC3+webgrid+from+DataTable+AsEnumerable+:
Model method: public List<IDictionary> FetchEmployeeDetails() { DataSet dsEmployee = new DataSet(); DbCommand dbCmd = m_DbAccess.SqlDb.GetStoredProcCommand("Test_FetchEmployeeDetails"); dbCmd.CommandType = CommandType.StoredProcedure; dsEmployee = m_DbAccess.SqlDb.ExecuteDataSet(dbCmd); return ConvertToListDictionary(dsEmployee.Tables[0]); } Controller Code: public ActionResult FetchDataForGrid() { EmployeeModels modelObject = new EmployeeModels(); var resultSet = modelObject.FetchEmployeeDetails(); return View(resultSet); } View Code: @using System.Dynamic @model List<System.Collections.IDictionary> @{ var result = new List<dynamic>(); foreach (var emprow in Model) { var row = (IDictionary<string, object>)new ExpandoObject(); Dictionary<string, object> eachEmpRow = (Dictionary<string, object>)emprow; foreach (KeyValuePair<string, object> keyValuePair in eachEmpRow) { row.Add(keyValuePair); } result.Add(row); } var grid = new WebGrid(result); } @if (@Model != null) { @grid.GetHtml(tableStyle: "grid", headerStyle: "head", alternatingRowStyle: "alt"); }
Grz, Kris.
Thanks for the reply, I am just getting an error with the IDictionary list anyways thanks for your time. Is there anyway you can just use a asp.net Gridview control with something like this with the entity framework ? As binding data to a webgrid in mvc
is a joke, so much extra work, in php its easier than this
Hi,
you can’t really make use of the gridview in MVC.
What you can do, and what I did in the past, is make use of jqGrid and bind the grid client side. There are also commercial tools for this like KendoUI and others.
Grz, Kris.