如何在MVC3中将数据绑定到Grid?

时间:2012-07-27 06:51:08

标签: asp.net-mvc-3 pagination html-table webgrid

过去几天我一直在和MVC一起工作......

我必须在网格中显示一堆数据...这些天我设法在一个表中显示它但我的要求是将它绑定到jquery网格或Webgrid ......

我坚持这个我不知道如何做到这一点期待想法和建议....

控制器

     public ActionResult Index()
    {
        var bugList = GetList();
        return View(bugList);
    }
    public List<ProjectModel> GetList()
    {
        var modelList = new List<ProjectModel>();
        using (SqlConnection conn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True"))
        {
            conn.Open();
            SqlCommand dCmd = new SqlCommand("Select * from Projects", conn);
            SqlDataAdapter da = new SqlDataAdapter(dCmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            conn.Close();
            for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                var model = new ProjectModel();
                model.ID = Convert.ToInt16(ds.Tables[0].Rows[i]["ProjectID"]);
                model.projectName = ds.Tables[0].Rows[i]["projectName"].ToString();
                model.Description = ds.Tables[0].Rows[i]["Description"].ToString();
                model.status = ds.Tables[0].Rows[i]["Status"].ToString();
                modelList.Add(model);
            }
        }
        return modelList;
    } 

查看(ASPX)

<table>
<thead align="center">
<tr class="BoldCenterAlignHeaderStyle">    

    <th>
        ProjectName
    </th>    
    <th>
       Status
    </th>  
    <th align="center">
    Edit
    </th>          
</tr>
</thead> 
     <% foreach (var item in Model) { %>  
      <tr>        
        <td> 
        <%:Html.LabelForModel(item.projectName) %> 
        </td>       
       <td>
       <%:Html.LabelForModel(item.status) %>
       </td>
       <td align="center">
         <a href="<%:Url.Action("Edit",new{id=item.ID}) %>" class="Edit"><img src="../../Content/edit.gif"  height="8px"/></a>
          <%--<%:Html.ActionLink("Edit", "Edit", new { id = item.ID })%> --%>          
         <%--  <a href="<%:Url.Action("Delete",new{id=item.ID}) %>" class="Delete"><img src="../../Content/delete.gif" height="8px" /></a>--%>
         </td>        
       </tr>
   <%} %>

如果我可以在表格中进行分页,我该怎么做呢,否则我应该如何在网格中显示数据,任何人都可以帮助我....任何人都可以解释我如何做到这一点

2 个答案:

答案 0 :(得分:1)

您可以使用Webgrid。

以下是了解webgrid工作原理的几个链接

webgrid简介

http://www.mikesdotnetting.com/Article/154/Looking-At-The-WebMatrix-WebGrid http://msdn.microsoft.com/en-us/magazine/hh288075.aspx

在webgrid中进行分页

http://yassershaikh.com/webgrid-paging-with-pager-method-in-razor-mvc/

Webgrid中的高级(高效)分页

http://www.dotnetcurry.com/ShowArticle.aspx?ID=615

希望这会有所帮助..!

答案 1 :(得分:1)

webgrid示例:

@model IEnumerable<ProjectModel>
@{
     var grid = new WebGrid(
     source: Model,
     rowsPerPage: 4);
}
@grid.GetHtml(
    tableStyle: "grid",
    headerStyle: "header",
    rowStyle: "row",
    footerStyle: "footer",
    alternatingRowStyle: "altRow",
    columns: grid.Columns (
      grid.Column("projectName"),
      grid.Column("ProjectID")
))