【发布时间】:2013-08-26 08:06:07
【问题描述】:
我对 MVC 很陌生。我有一个 Html.Grid,其中有一些列。我想添加一个新列,其标题为“新列”。该列的每一行都有一个按钮。应该根据另一列的值禁用该按钮.例如,如果一行的“状态”列是“完成”,则应启用该按钮,否则应禁用该按钮。单击按钮时,将调用“MyController”中的“myMethod”。 我的视图中的现有代码如下所示:
Html.Grid(Model.Results)
.RowAttributes(row => new Hash(@class => row.Item.Priority1 ? "redgrid" : row.IsAlternate ? "alternategrid" : "grid"))
.Columns(column =>
{
column.For(c =>
(c.ExistsInPatRec == true) ?
Html.ActionLink(c.CaseNumber.ToString(), "Details", new { id = c.CaseNumber }, new { target = "_blank" })
: Html.Label(c.CaseNumber.ToString())
)
.Named("Case Number").SortColumnName("CaseNumber")
.Encode(false)
;
//I have to add my column here.It will be disabled if "Status"="Incomplete"
column.For(c => c.Status).Named("Status").SortColumnName("Status")
.Attributes(x =>
{
if (x.Item.Status == "Complete")
return new Hash(style => "background-color:#33CC00");
else if (x.Item.Status == "Incomplete")
return new Hash(style => "background-color:orange");
else
return new Hash(style => "");
});
column.For(c => c.SomeId);
我已经添加了这一行:
column.For(c => "<button onclick='location.href='www.gmail.com';'>gmail</button>").Named("My New Column").Encode(false);
但它不起作用。当我单击按钮时,它不会将我带到链接。
有人可以帮帮我吗?
【问题讨论】:
-
当前禁用和启用是否正常工作?
-
我无法添加列,首先。启用/禁用是次要的。我不知道如何在网格中添加调用控制器中的动作的按钮。添加带有按钮的列的示例代码将很有帮助。
-
所以你的专栏是用按钮出现的,而不是带你去链接,对吧?
标签: html button asp.net-mvc-2 mvccontrib-grid