11

内部にテレリック グリッドがあるモーダル ウィンドウが 1 つずつあります。しかし、@ を 2 回使用できないことを理解しているので、グリッドに画像をレンダリングする必要があります。この問題に関するブログ記事はこちらリンク

誰か助けてください。

マイコード

@{  Html.Telerik().Window()
    .Name("images")
    .Title("Select an Image")
    .Content(@<text>

@(Html.Telerik().ComboBox()
            .Name("AjaxComboBox66")
            .AutoFill(true)
            .SelectedIndex(0)
            .BindTo(new SelectList(Model.PhotoFolders, "ID", "Name"))
            .Filterable(filtering => filtering.FilterMode(AutoCompleteFilterMode.StartsWith))
            .HighlightFirstMatch(true)
            .ClientEvents(events => events
                .OnChange("onChange")
            )
      )

      @(Html.Telerik().Grid<AjaxImages>()
    .Name("Grid")
    .DataKeys(keys => keys.Add(c => c.ID))
  .Columns(columns =>
  {
      columns.Template(
          @<text>
               <img src='@item.Url' /> 
//Here is my error. I need helper function
           </text>

).Title("Picture");

  })

                              .DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))

                      .Scrollable(scrolling => scrolling.Enabled(true))
                      .Sortable(sorting => sorting.Enabled(true))
                          .Pageable(paging => paging.Enabled(true).PageSize(20).Total(100).Style(GridPagerStyles.NextPreviousAndNumeric))
                      .Filterable(filtering => filtering.Enabled(true))
                      .Groupable(grouping => grouping.Enabled(false))
                      .EnableCustomBinding(true)

                      .Footer(true))
              </text>)
    .Width(400)
    .Draggable(true)
    .Modal(true)
    .Visible(false)


    .Render();
} 

私の GetImages 関数は、「ID」と「URL」を含む json を返します。

4

2 に答える 2

18

このような状況では、MVC Razor ヘルパー関数を使用できます。この場合は、グリッド コントロール定義を使用してヘルパー関数を作成しますRenderGrid()

@helper RenderGrid()
{
     @(Html.Telerik().Grid<AjaxImages>()
     .Name("Grid")
     .DataKeys(keys => keys.Add(c => c.ID))
     .Columns(columns =>
     {
         columns.Template(
         @<text>
             <img src='@item.Url' /> 
         </text>
         ).Title("Picture");
     })
     .DataBinding(dataBinding => dataBinding.Ajax().Select("GetImages", "UserProducts"))
}

ウィンドウのコンテンツ定義内でヘルパー関数を呼び出します。ヘルパー関数は、必要に応じて複数回呼び出すことができます。

    @{Html.Telerik().Window()
      .Name("images")
      .Title("Select an Image")
      .Content(
       @<text>
          @RenderGrid()
       </text>)
      .Width(400)
      .Draggable(true)
      .Modal(true)
      .Visible(false)
      .Render();
} 
于 2012-05-21T18:09:16.803 に答える
2

以前の MVCは、タグをネスト@helperできないための回避策として使用されていました。しかし、MVC COREでは省略されています。ここでもっと読む: @<text>@helper

https://github.com/aspnet/Razor/issues/715

于 2016-08-03T11:16:11.783 に答える