1

以下のコードはaspxビューエンジンでうまく機能します、私はそれを以下のようにかみそりに変換しようとしています。問題は、最初の列が表示されないことです。

アクションメソッドを使用して、最初の列をリンクに変換します。かみそりでは、it(最初の列)がページにまったくレンダリングされません。グリッドの残りの部分は問題ありません。

何が問題なのですか?

@{Html.Grid(Model.Orders).Attributes(style => "width: 100%;").Columns(
column => {
    column.For(x => x.OrderNumber).Action(p => {
        @:<td>
        Html.ActionLink(
            p.OrderNumber.ToString(),
            "orderdetail",
            "OrderUpdate",
            new { id = p.OrderNumber, backUrl = Url.Action("OrderHistory", new { controller = "DataController", id = ViewData["id"] }) },
            new { });
        @:</td>
    }).HeaderAttributes(style => "text-align:left");

    column.For(x => x.OrderTimeV2).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Status).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Type).HeaderAttributes(style => "text-align:left");
}).RowStart((p, row) => { }).Render();}
4

3 に答える 3

1

私たちが持っているグリッドではあまり意味がないので、mvccontribグリッドの使用をやめました。

とにかく問題は、質問のコードがhtmlを返さないが、コードを直接応答ストリームに入れることでした。そして、呼び出されるたびにのコードをストリームに入れるかみそりを使用してレンダリングされた列のコード。そのため、グリッドがレンダリングされる前に列をストリームに配置することになります。

これは、グリッドによって呼び出されるアクションでかみそりコードを使用しないことで解決されました。

于 2011-03-05T18:55:53.477 に答える
0

わかりました、私はそれが私のために次のように機能するようになりました

 @Html.Grid(Model.Result).Columns(column => {
    column.For(u => u.Name).Named("Name");
    column.For(u => u.Code).Named("Code");
    column.For(u => Html.ActionLink("Edit", "Edit", new { id = u.Id })).Named("Edit");
于 2011-03-06T04:58:34.013 に答える
0

カスタム列を実行して、必要なものを取得できます。

@Html.Grid(Model).Columns(column => {
  column.Custom(
    @<div>
      <em>Hello there</em>
      <strong>@item.Name</strong>
    </div>
   ).Named("Custom Column");
})

From:MvcContrib Grid Custom Columns(Razor)

いくつかの.aspxページをRazorに移植するときにこれを行いました。

于 2016-10-13T18:02:06.247 に答える