【问题标题】:How to create dynamic Grid using mvc 3 aspx engine?如何使用 mvc 3 aspx 引擎创建动态网格?
【发布时间】:2012-06-28 09:01:08
【问题描述】:

我是 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"))

动态返回控制器动作。如何返回动态列或动态网格视图或扩展?

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-3 gridview


【解决方案1】:

@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)
}

【讨论】:

    【解决方案2】:

    试试这个。这样就可以创建一个Grid:

    <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>
    

    【讨论】:

    • 我想动态生成item1,2,3
    • 从哪里获取列名,需要动态生成吗?
    • 您能在此处详细说明您的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 2021-07-20
    • 2020-09-11
    • 2021-06-27
    相关资源
    最近更新 更多