Как создать динамическую сетку с помощью движка mvc 3 aspx?

Я новичок в asp.net mvc 3. Я пытаюсь создать динамическую сетку с помощью mvc3, но не могу создать сетку. Мой код ниже:

Модель:


  public class Employee
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public double Salary { get; set; }
        public static List<Employee> GetList()
        {
            List<Employee> employees = new List<Employee>{
          new Employee   { FirstName="Rahul", LastName="Kumar", Salary=45000},
          new Employee   { FirstName="Jose", LastName="Mathews", Salary=25000},
          new Employee   { FirstName="Ajith", LastName="Kumar", Salary=25000},
          new Employee   { FirstName="Scott", LastName="Allen", Salary=35000},
            new Employee   { FirstName="Abhishek", LastName="Nair", Salary=125000}
            };
            return employees;
        }
    }

Контроллер


  public class EmployeeController : Controller
    {
        //
        // GET: /Employee/

        public ActionResult Index()
        {
            var empoyees = Employee.GetList();
            return View(empoyees);
        }

    }

Просмотр:


<%
    var grid = new WebGrid(source: Model, defaultSort: "FirstName", rowsPerPage: 3);
    using (Html.BeginForm())
    {
        %>
        <div id="grid">
        <%:grid.GetHtml(tableStyle:"grid", 
        headerStyle:"head", 
        alternatingRowStyle:"alt",
        columns:grid.Columns(
        grid.Column("FirstName"),
        grid.Column("LastName"),
        grid.Column("Salary"))) %>
        </div>
        <%} %>

я хочу создать


grid.Column("FirstName"),
        grid.Column("LastName"),
        grid.Column("Salary"))

динамически возвращать действие контроллера. Как вернуть динамический столбец или динамическое представление сетки или расширения?


person loki    schedule 28.06.2012    source источник
comment
Можете ли вы быть более четкими, динамичными столбцами? Что именно вы подразумеваете под динамическими столбцами?   -  person Hari Gillala    schedule 28.06.2012
comment
Вы имеете в виду, что хотите, чтобы каждый столбец считывал динамическое значение? Или буквально Имя в столбце 1, Фамилия в столбце 2 и Зарплата в столбце 3?   -  person Ecnalyr    schedule 28.06.2012
comment


Ответы (2)


@programmerist, Это ваш ответ ;)

@{
    var properties = typeof(MyModelClassName).GetProperties();
    var webGridColumns = properties.Select(prop => new WebGridColumn()
        {
            ColumnName = prop.Name, Header = prop.Name, Style = "my-style"
        }).ToList();

    var grid = new WebGrid(source: Model, rowsPerPage: 3);
    @grid.GetHtml(tableStyle: "grid",
                  headerStyle: "head",
                  alternatingRowStyle: "alt",
                  columns: webGridColumns)
}
person RAM    schedule 24.01.2013

Попробуй это. Таким образом вы можете создать сетку:

<table>
 <tr>
     <th>
         Item1
     </th>
     <th>
         Item2
     </th>
     <th>
         Item2
     </th>
 </tr>

<% foreach (var item in Model) { %>
    <tr>
        <td>
            <%: item.item1 %>
        </td>
        <td>
            <%: item.item2 %>
        </td>
        <td>
            <%: item.item3 %>
        </td>           
    </tr>
<% } %>
</table>
person RL89    schedule 28.06.2012
comment
я хочу производить item1,2,3 динамически - person loki; 28.06.2012
comment
откуда вы получаете имя столбца, которое необходимо генерировать динамически? - person RL89; 28.06.2012
comment
Не могли бы вы подробнее рассказать о своей проблеме? - person RL89; 28.06.2012