Asp.net 如果Web网格列中有其他项
如何在webgrid列中放置条件(如果有)Asp.net 如果Web网格列中有其他项,asp.net,asp.net-mvc,asp.net-mvc-3,razor,webgrid,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,Webgrid,如何在webgrid列中放置条件(如果有) @grid.GetHtml(tableStyle: "table table-bordered", columns: grid.Columns( grid.Column("RealName", "Name"), grid.Column("UserName", "Email") )) 我必须根据条件显示电子邮件栏,如何做到这一
@grid.GetHtml(tableStyle: "table table-bordered",
columns: grid.Columns(
grid.Column("RealName", "Name"),
grid.Column("UserName", "Email")
))
我必须根据条件显示电子邮件栏,如何做到这一点?一个非常简单的方法是
if(myConditionCanGoInHere) {
@grid.GetHtml(tableStyle: "table table-bordered",
columns: grid.Columns(
grid.Column("RealName", "Name"),
grid.Column("UserName", "Email")
))
}
else{
@grid.GetHtml(tableStyle: "table table-bordered",
columns: grid.Columns(
grid.Column("RealName", "Name"),
//grid.Column("UserName", "Email")
))
// Here remove your email column
))
如果您在将数据放入GUI层之前验证这一点,这将是一件好事。 您必须在控制器中为网格获取正确的数据。因此,您只能在网格中显示数据,而不必介意它是否是正确的数据,因为您已经验证了它 这意味着您必须将if/else放在控制器中,而不是视图中
public JsonResult GetServiceGridData([DataSourceRequest]DataSourceRequest request)
{
var services = ModelTransformer.Transform(Repository.Instance.GetServices());
foreach (var service in services)
{
var filterType = _filterTypes.FirstOrDefault(x => x.Id == service.FilterTypeId);
service.FilterTypeName = filterType == null ? _filterTypeNoneName : filterType.Name;
}
return Json(services.ToDataSourceResult(request));
}
像这样的例子你可以试试这个
@{
var gridColumns = new List<WebGridColumn>();
gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Select", "Details")));
if (true)
{
gridColumns.Add(grid.Column(format: (item) => Html.ActionLink("Edit", "Edit")));
}
gridColumns.Add(grid.Column("UserName", "name"));
gridColumns.Add(grid.Column("RealName", "RealName"));
}
@grid.GetHtml(columns: grid.Columns(gridColumns.ToArray()));
@{
var gridColumns=新列表();
Add(grid.Column(格式:(item)=>Html.ActionLink(“Select”,“Details”));
如果(真)
{
添加(grid.Column(格式:(item)=>Html.ActionLink(“编辑”、“编辑”));
}
添加(grid.Column(“用户名”、“名称”));
添加(grid.Column(“RealName”、“RealName”);
}
@GetHtml(列:grid.columns(gridColumns.ToArray());
这对我很有效
@grid.GetHtml(tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
selectedRowStyle: "select",
columns: grid.Columns(
grid.Column("Is Active",format: (item) =>
{
if (item.IsActive == true)
{
return Html.Raw(string.Format("<text><img height='20' width='20' src=\"{0}\" alt=\"Image\"/></text>", Url.Content("~/images/rightmark.png")));
}
else
{
return Html.Raw(string.Format("<text><img height='20' width='20' src=\"{0}\" alt=\"Image\"/></text>", Url.Content("~/Content/images/non-preview-photo.gif")));
}
}, style: "firstColumn",canSort:true),
grid.Column("Name", " Name", style: "SecondColumn",canSort:true),
grid.Column("Role", "Role", style: "ThirdColumn",canSort:true)
))
@grid.GetHtml(表样式:“webGrid”,
headerStyle:“header”,
alternatingRowStyle:“alt”,
selectedRowStyle:“选择”,
列:grid.columns(
grid.Column(“处于活动状态”,格式:(项)=>
{
如果(item.IsActive==true)
{
返回Html.Raw(string.Format(“,Url.Content(“~/images/rightmark.png”));
}
其他的
{
返回Html.Raw(string.Format(“,Url.Content(“~/Content/images/non-preview photo.gif”);
}
},样式:“第一列”,canSort:true),
grid.Column(“名称”、“名称”、样式:“SecondColumn”、canSort:true),
grid.Column(“角色”,“角色”,样式:“第三列”,canSort:true)
))
我更新代码以接受参数:(Razor视图-Webmatrix)
grid.Column(“未读”,格式:(项)=>
{
如果(item.Unread==true)
{
返回Html.Raw(string.Format(“,@item.id));
}
},canSort:true)
尝试此链接可能与[此链接][1][1]重复:我必须根据条件显示/隐藏列,上面的线程显示或隐藏列值,因此它不会重复。然后将您的问题修改为如果WebGrid列有其他问题
我正在寻找快速修复好友。然后查看一个:)@AnupWell我无法在控制器中更改,因为它正被多个用户使用。请在我最后的回答中点击“这个”。。。在这里,您不必更改控制器…谢谢您的回答,但我如何使整个列处于状态。因此,如果条件为真,则该列将显示,反之亦然。@Anup检查更新的答案这是一个非常基本的答案检查,如果它对您有效。谢谢@Nilesh,看起来这是最干净的方法
grid.Column("Unread",format: (item) =>
{
if (item.Unread == true)
{
return Html.Raw(string.Format("<text><a \"target=\"_blank\" href=\"ViewComments?bvnum={0}\"><img height='20' width='20' border='0' src=\"/images/new_comments.png\" alt=\"Image\"/></text>", @item.id));
}
else
{
return Html.Raw(string.Format("<text><a \"target=\"_blank\" href=\"ViewComments?bvnum={0}\"><img height='20' width='20' border='0' src=\"/images/comments.png\" alt=\"Image\"/></text>", @item.id));
}
}, canSort:true)