c# - 在 Gridview 中显示来自 SQL 数据库的数据

标签 c# asp.net-mvc gridview

我想在 SQL 数据库中使用 3 个表在 GridView 中显示数据。

首先我创建了模型

public class common
    {

        public Artist Artist { get; set; }
        public Album Album { get; set; }
        public Genre Genre { get; set; }

    }

那么这是 Controller

 public ActionResult Show1()
    {
        var query = from a in DB.Album
                    join b in DB.Artists
                    on a.ArtistId equals b.ArtistId
                    join c in DB.Genre
                    on a.GenreId equals c.GenreId
                    where (b.ArtistId == 2)
                    select new common { Album = a, Artist = b, Genre = c };
        return View(query.ToList());
    }

}

之后这是我的 View

@model IEnumerable<test1.Models.common>


@{
    ViewBag.Title = "Show1";
}

<h2>Show1</h2>

<div>

@{

  var grid = new WebGrid(Model, defaultSort:"Name");

}

@grid.GetHtml()

</div>

但是没有显示任何数据? 我该怎么做?

最佳答案

我认为您需要一个用于通用对象模型的编辑器模板 或者使用 for 语句并填充 html 表

例如...

<table summary="">
    <thead>
        <tr>
            <th></th>
            <th>
                Account No.
            </th>
            <th>
                Customer Name
            </th>
            <th class="SingleCheckBox">
                Is Approved
            </th>
            <th  class="SingleCheckBox">
                Is Locked out
            </th>
            <th>
                Last Login
            </th>
        </tr>
    </thead>
    <tbody>
@for (int i = 0; i < Model.Count(); ++i)
{
    var item = Model[i];
    bool isSelected = item.AccountNo == selectedAccountNo;
    <tr>
        <td>@Html.RadioButton("selectedUserName", item.UserName, isSelected, new { name = "selectedUserName" })</td>
        <td>
            @Html.DisplayFor(model => model[i].UserName)
            @Html.HiddenFor(model => model[i].UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email)
        </td>
        <td class="SingleCheckBox">
            @Html.CheckBoxFor(model => model[i].IsApproved) 
        </td>
        <td class="SingleCheckBox">
            @if (item.IsLockedOut)
            {
                @Html.CheckBoxFor(model => model[i].IsLockedOut);
            }
            else
            {
                @Html.CheckBoxFor(model => model[i].IsLockedOut);
            }
        </td>
        <td class="last-child">
            @(TimeZoneInfo.ConvertTime(DateTime.SpecifyKind(item.LastLoginDate, DateTimeKind.Utc), timeZoneInfo).ToString())
        </td>
    </tr>
}
    </tbody>
</table>

关于c# - 在 Gridview 中显示来自 SQL 数据库的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311626/

相关文章:

asp.net-mvc - 使用Unity动态注入(inject)构造函数参数

asp.net-mvc - 什么是 DWASMod.dll?

java - 如何为每个 GridView 项目赋予不同的背景颜色?

c# - ASP.NET Webforms Gridview 页脚

c# - ASP.NET 中的自定义类型应用程序设置

c# - 为什么 Java 有虚拟扩展方法而不是像 C# 那样有静态扩展方法?

c# - 如何在 C# 中列出来自 Google Drive API V3 的超过 1000 条记录

c# - WebApi 自定义授权属性不起作用

c# - 如何在更改标题文本后在 gridview 中启用排序

c# - 如何在注销时清除sqlite数据库