我是ASP.NET MVC的新手,想要做一个简单的页面,使用Entity检索一些数据并在分页数据网格中显示它.
任何人都可以指出我正确的方向或教程等.
它只是检索一个东西列表并显示它的概念证明.
我正在开发一个ASP.net MVC应用程序.
之前我使用以下代码显示产品表.
foreach (var item in Model)
{
<div class="row">
<div class="cell">
@Html.ActionLink(item.productName, "ViewProduct", "Showcase",
new { productID = item.productID }, null)
</div>
<div class="cell">
@item.quantity
</div>
<div class="cell">
@item.price
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,我能够将Nx1'st元素作为链接重定向到显示产品细节的视图.
然后我想使用MVC.Grid Nuget包实现GridView来显示产品表.
网格工作正常,但我不能将Nx1'st元素作为链接,以便我可以重定向.
我试过这个,但它不起作用.
@Html.Grid(Model).Columns(columns =>{
columns.Add(model => model.productName).Titled("Name").Filterable(true)
.RenderValueAs(o => Html.ActionLink(o.productName, "ViewProduct", "Showcase",
new { productID = o.productID }, null));
columns.Add(model => model.quantity).Titled("Quantity Available");
columns.Add(model => model.price).Titled("Price");
}).WithPaging(3).Sortable(true)
Run Code Online (Sandbox Code Playgroud)
我在Nx1单元格中获得的输出是:
<a href="/Showcase/ViewProduct/?productID=15">Galaxy Note 3</a>
Run Code Online (Sandbox Code Playgroud)
期望的输出: Galaxy Note 3
请帮帮我.谢谢.
我的Mvc Grid的代码如下所示,但由于某些原因,可排序和可过滤的属性不能像codePlex文档中所述那样工作.我使用html5和bootstrap.css在.NET 4.5中开发:
@Html.Grid(Model.Item2).Named("ViewEntries").Columns(columns =>
{
columns.Add(c => c.entryName).Titled("Entry Name").Sortable(true).Filterable(true);
columns.Add(c => c.entryDate).Titled("Date").Sortable(true);
columns.Add(c => c.entryDetails).Titled("Details").Sortable(true);
columns.Add().Titled("Name1").RenderValueAs(c => Name1((int)c.name1)).Sortable(true).Filterable(true);
columns.Add().Titled("Name2").RenderValueAs(c => Name2((int)c.name2)).Sortable(true).Filterable(true);
columns.Add().Titled("Name3").RenderValueAs(c => Name3((int)c.name3)).Sortable(true).Filterable(true);
}).WithPaging(10)
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,谢谢.
我正在使用MVCGrid.net(http://mvcgrid.net).首先,神奇的网格工具!我的网格正常工作,但是当我填充网格时,我需要将另一个参数传递给我的RetrieveDataMethod.我需要传递的值是我的视图模型的一部分,我很确定我需要将它作为AdditionalQueryOption传递.我不希望这是一个过滤器,因为我不希望它只在客户端事件后发送.我希望它总是传递给我的RetrieveDataMethod.我尝试将data-mvcgrid-type ='additionalQueryOption'添加到我的隐藏输入中,但仍未发送.然后我注意到这需要data-mvcgrid-apply-additional ='event'来触发事件.这与过滤器有什么不同?是否有一个网格加载事件,我可以挂钩注册我的隐藏值作为一个额外的查询选项?对我的情况有什么正确的解决方法?
这是我的网格的检索数据方法定义:
.WithRetrieveDataMethod((context) =>
{
var options = context.QueryOptions;
// this is the bit i need
var projectId = ???;
options.AdditionalQueryOptions.Add("projectId", projectId);
int totalRecords;
var items = ReportManager.GetReports(out totalRecords, options);
return new QueryResult<ReportSummaryViewModel>()
{
Items = items,
TotalRecords = totalRecords
};
})
Run Code Online (Sandbox Code Playgroud)
这是查看代码:
<h1>Reports for @Model.ProjectName</h1>
<p class="form-inline">
<button type="button" class="btn btn-default" onclick="window.location.href='@Url.Action("Index", "Home")'">Back</button>
<button type="button" class="btn btn-primary" onclick="window.location.href='@Url.Action("Create", "Reports", new { @id = Model.ProjectId })'">New Report</button>
</p>
<!-- This is the hidden input i'd like …
Run Code Online (Sandbox Code Playgroud) @{IEnumerable<BC.Models.APPLICATION> data = ViewBag.list;}
@Html.Grid(data).Columns(columns =>
{
columns.Add(c => c.APPLICATION_NO).Titled("Application No").Filterable(true);
})
Run Code Online (Sandbox Code Playgroud)
但我想做那样的事情:
@if(some conditon)
{
@{IEnumerable<BC.Models.APPLICATION> data = ViewBag.list;}
}
else
{
@{IEnumerable<BC.Models.RIGHTS> data = ViewBag.list;}
}
@Html.Grid(data).Columns(columns =>
{
columns.Add(c => c.APPLICATION_NO).Titled("Application No");
})
Run Code Online (Sandbox Code Playgroud)
但它没有用,任何人都可以对此有所了解.
现在如果我做这样的事情就行了
@if(some conditon)
{
@{IEnumerable<BC.Models.APPLICATION> data = ViewBag.list;}
@Html.Grid(data).Columns(columns =>
{
columns.Add(c => c.APPLICATION_NO).Titled("Application No");
})
}
else
{
@{IEnumerable<BC.Models.RIGHTS> data = ViewBag.list;}
@Html.Grid(data).Columns(columns =>
{
columns.Add(c => c.APPLICATION_NO).Titled("Application No");
})
}
Run Code Online (Sandbox Code Playgroud)
我的问题是APPLICATION_NO属性存在于两个Model类中,所以我不想使用它
@Html.Grid(data).Columns(columns =>
{
columns.Add(c => c.APPLICATION_NO).Titled("Application No");
})
Run Code Online (Sandbox Code Playgroud)
我的代码中有两次.