我无法在WebGrid列名称中添加html(在标题处)?当我在列名称中添加html时,webgrid会对其进行编码.这是不可能在WebGrid列名中添加html吗?
我的视图包含以下代码
@{
List<string> list = new List<string>();
list.Add("1001");
list.Add("1002");
list.Add("1003");
var g = new WebGrid(source:list);
g.GetHtml();
}
Run Code Online (Sandbox Code Playgroud)
除此之外什么都没有,但网格没有显示,我可以看到网格的html输入Immediate Window并且它是正确的但是网格根本没有显示.为什么?
我是MVC的新手,请指导我.我需要根据条件更改webgrid行的文本颜色.如上所述,我是MVC的新手,所以我不知道从哪里开始处理这个问题.
以下是视图
@model IEnumerable<GridViewMVC.Models.Employee>
@{
ViewBag.Title = "Home Page";
WebGrid grid = new WebGrid(Model);
}
<div>
@grid.GetHtml(
tableStyle:"GridTable",
headerStyle :"GridHeader",
footerStyle :"GridFooter",
alternatingRowStyle :"GridAlterRow",
rowStyle:"gridRow",
columns:grid.Columns(
grid.Column("Id","Emp Id"),
grid.Column("Name","Name"),
grid.Column("Age","Age"),
grid.Column("Designation","Title"),
grid.Column("Gender","Gender")
))
</div>
Run Code Online (Sandbox Code Playgroud)
在模型中声明属性.在控制器中,我传递Employee List对象进行查看
输出就是这样的
Emp Id Name Age Designation Gender
1 Anurag 24 SE Male
2 Mike 31 Lead Male
3 George 41 GPM Male
Run Code Online (Sandbox Code Playgroud)
现在我想根据这个条件突出显示Age的背景颜色.如果年龄在20到30之间,背景颜色应为绿色.如果年龄在30到40之间,背景颜色应为黄色.如果年龄介于40以上,则该单元格的背景颜色应为红色.
我正在尝试格式化WebGrid列,以便我可以将两个数据连接在一起(名字和姓氏).这是我正在尝试的,但我承认我不认为我完全理解如何使用WebGrid中的数据(除了基本场景).(对于列名,Teacher对象正在传递给我的视图,但要实际获取教师的名字,我必须从链接的用户对象获取该信息,因为用户可以扮演多个角色.)
grid.Column(
columnName: "Teacher.User",
header: "Teacher",
style: "",
canSort: true,
format: (item) =>
{
var text = Html.DisplayTextFor(item => item.LastName) + ", " + Html.DisplayTextFor(item => item.FirstName);
return Html.Raw(text);
}
)
Run Code Online (Sandbox Code Playgroud) 我正在使用Razor的MVC 3,我使用下面的网格来显示一些数据,
我需要在第一列中进行排序.我在其他页面上也使用了类似的代码进行排序,它工作正常,但在这里似乎没有用.
但是,如果我转到下一页说第2页,现在我点击排序,它按升序排序,然后再次出现同样的问题.
<div id="grid">
@{
// added ajaxContainerId
var listgrid = new WebGrid(source: Model.ABC, rowsPerPage: 2, ajaxUpdateContainerId: "grid");
@listgrid.GetHtml(
columns: listgrid.Columns(
listgrid.Column("ColName", format: @<text><a href="javascript:ShowData(@item.ColName);">@item.Name</a></text>, canSort:true),
listgrid.Column(null, "Delete", (item) => MvcHtmlString.Create(string.Format("<a href='DeleteList/{0}'>Delete</a>", @item.Name))),
))
}
</div>
Run Code Online (Sandbox Code Playgroud) WebGrid 分页链接在所有情况下都能正常工作,除了一个(我注意到).
当您CheckBoxFor在MVC中使用时,它会为同一个字段创建一个input[type=hidden]和一个input[type=check-box],以便它可以处理状态.因此,如果您有一个名为X并在GET方法中提交表单的字段,您将得到如下URL:
默认的模型绑定器可以理解这些多个实例os X并找出它的值.
当您尝试对其进行分页时会发生此问题WebGrid.它的行为是尝试捕获当前请求参数并在分页链接中进行修复.但是,由于不止一个X,它将通过X=false,true而不是预期的X=false或X=false&X=true
这是一个问题因为X=false,true无法正确绑定.在操作开始之前,它将在模型绑定器中触发异常.
有没有办法可以解决它?
编辑:
这似乎是一个非常具体的问题,但事实并非如此.几乎每个带有复选框的搜索表单都会破坏WebGrid的分页.(如果您正在使用GET)
编辑2:
我认为我唯一的选择是:
false,true为有效下面我给出了控制器,模型和视图.运行后,网格显示值,但我需要编辑值并删除同一页面上的值.我搜索并看到了一些示例,在编辑中,删除它们创建单独的索引但我需要的是编辑和删除应该在同一页面而不是另一页面上完成.请给我一个解决方案.
控制器:
public ActionResult Index()
{
var PersonList = new List<Person>()
{
new Person(){Name="A", Age=20,Id =1},
new Person(){Name="B",Age=45,Id =2},
new Person(){Name="C", Age=30,Id =3},
new Person(){Name="D",Age=55,Id =4},
new Person(){Name="E", Age=30,Id =5},
new Person(){Name="F",Age=25,Id =6},
new Person(){Name="G", Age=30,Id =7},
new Person(){Name="H",Age=25,Id =8},
};
return View(PersonList);
}
Run Code Online (Sandbox Code Playgroud)
课程:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
查看:
@model IEnumerable<edit.Models.Person>
@{
ViewBag.Title = "Index";
}
<html>
<head>
<title>Index</title>
<style type="text/css">
.webGrid { margin: …Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的网站,其中包含搜索部分视图和列表部分视图.它们使用多个模型汇总到索引视图中.
一切都好.除非我单击网格列标题以排序或尝试寻呼到下一个数据列表,否则网格将返回空白状态.如果我重新提交相同的搜索条件,则网格会重新填充所有适用的数据,这些数据已正确排序或分页.
我已经跟踪了这个行为,因为WebGrid将它的分页和排序机制设置为GET而不是POST.显然我的所有模型数据都不在提交中.
是不是有办法让WebGrid进行POST以便数据标签一起?对于WebGrid而言,似乎非常适得其反,因为它不包含要分页或排序的数据.
我是 MVC 的新手,正在尝试完善webgrid. 我有以下代码view
@model IEnumerable<MVCMovies.Models.Movie>
@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
$(function() {
$('tbody tr').on('hover', (function () {
$(this).toggleClass('clickable');
}));
$('tbody tr').on('click', (function () {
alert('rajeev');
}));
});
</script>
<style type="text/css">
.table {
margin: 4px;
width: 100%;
background-color: #FCFCFC;
}
.head {
background-color: #11E8CD;
font-weight: bold;
color: #CC6699;
}
.webGrid th, .webGrid td {
border: 1px solid #C0C0C0;
padding: 5px;
color:white;
}
.altRow {
background-color: #E4E9F5;
color: #000;
}
.gridHead a:hover {
text-decoration: underline;
} …Run Code Online (Sandbox Code Playgroud) 我在我的mvc应用程序中使用了WebGrid。
<div class="grid-div" id="webgridid">
@grid.GetHtml(
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
columns: new[]
{
grid.Column("name","Name", canSort: true, style: "name"),
grid.Column("description","Description", canSort: true, style: "description"),
grid.Column("duration","Duration", canSort: true, style: "duration"),
})
</div>
Run Code Online (Sandbox Code Playgroud)
我可以使用表单来编辑选定的行值。编辑此值后,它不会反映在我的webGrid中。但这反映在数据库中。为了将其反映到webGrid中,我需要通过从DB加载数据来刷新webGrid。如何将内容从数据库重新加载到webGrid?同样,在重新加载后,此pageNumber应该是旧的。这该怎么做?