1

私は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);

ボタンをクリックしても、リンクに移動しません。

誰か助けてくれませんか?

4

1 に答える 1