6

製品のリストを表示する Telerik グリッドの作成に成功しましたが、列を追加してユーザーが編集できるようにするのに苦労しました (グリッド内で編集しようとしているわけでもありません。単に編集ビューへのリンク)

カスタム列を追加すると、デバッグ時にエラー画面に次の行が表示されます (赤の 24 行目)。

Line 22:                          columns.Add(o => o.ProductIsActive);
Line 23:                          columns.Template(o =>
Line 24:                          {
Line 25:                              
Line 26:                              %><%=Html.ActionLink("Edit", "Edit", new { id = o.ProductID })%><% }).Title("Edit");

私のコンパイラ エラー メッセージはコンパイラ エラー メッセージです: CS1525: 無効な式の用語 ')'

ここに私のビューコードがあります:

<%= Html.Telerik().Grid<NationalPetVax.Models.Product>()
          .Ajax(ajax => ajax.Action("_Index", "Products"))
          .DataKeys(dataKeys => dataKeys.Add(c => c.ProductID))
          .DataBinding(dataBinding => dataBinding.Ajax().Update("Update", "Home"))

          .Name("Grid")
                 .Columns(columns =>
                 {
                     columns.Add(o => o.ProductName).Width(81);
                     columns.Add(o => o.ProductPrice).Width(200);
                     columns.Add(o => o.ProductType.ProductTypeName);
                     columns.Add(o => o.Specy.SpeciesName);
                     columns.Add(o => o.ProductIsActive);
                     columns.Template(o =>
                     {

                         %><%=Html.ActionLink("Edit", "Edit", new { id = o.ProductID })%><% }).Title("Edit");

                     })
          .Sortable()
          .Scrollable()
          .Pageable();
    %>

誰もこの問題を見たことがありますか?私はチュートリアルに何度も従いましたが、テレリック グリッドが本当に好きで、自分のプロジェクトに含めたいと思っていますが、テレリック グリッドをすべてあきらめようとしています。

4

5 に答える 5

6

テレリックについては知りません。しかし、問題は式内の終了/開始タグにあるようです。これを試して :

columns.Template(o =>
              { 
                  Response.Write(Html.ActionLink("Edit", "Edit", 
                  new { id = o.ProductID })); 
              }).Title("Edit");
于 2010-02-21T17:15:51.957 に答える
5

次のコードは問題を解決し、コードを少し整理します。

columns.Bound(o => o.ProductId).Format(
             Html.ActionLink("Edit", "Edit", new {Id = "{0}"}).ToString());

また、 Boundは2010 年 Q1 リリースの新しいAddです

于 2010-02-22T05:59:05.720 に答える
5

コードに「gator タグ」を保持したい場合は、次のようにします。

columns.Template(o =>
                     {

                         %><%=Html.ActionLink("Edit", "Edit", new { id = o.ProductID })%><% }).Title("Edit");

                     })

これを呼び出す方法を変更するだけです。上部であなたがやっている

<%=

それをに変更します

<%

そして電話するだけ

.Render()

グリッド宣言の最後に。これにより、「無効な式の用語」エラーが防止されます。新しいコード全体は次のようになります

<% Html.Telerik().Grid<NationalPetVax.Models.Product>()
          .Ajax(ajax => ajax.Action("_Index", "Products"))
          .DataKeys(dataKeys => dataKeys.Add(c => c.ProductID))
          .DataBinding(dataBinding => dataBinding.Ajax().Update("Update", "Home"))

          .Name("Grid")
                 .Columns(columns =>
                 {
                     columns.Add(o => o.ProductName).Width(81);
                     columns.Add(o => o.ProductPrice).Width(200);
                     columns.Add(o => o.ProductType.ProductTypeName);
                     columns.Add(o => o.Specy.SpeciesName);
                     columns.Add(o => o.ProductIsActive);
                     columns.Template(o =>
                     {

                         %><%=Html.ActionLink("Edit", "Edit", new { id = o.ProductID })%><% }).Title("Edit");

                     })
          .Sortable()
          .Scrollable()
          .Pageable()
          .Render();
    %>
于 2010-03-04T01:16:58.263 に答える
4

コードのレビューを追加したいと思います。これを試してみてください、それは仕事です

columns.Add(c => c.CustomerID).Format(Html.ActionLink( "Edit"、 "Home"、new {id = "{0}"}})).Encoded(false).Title( "Edit" );

于 2010-06-22T07:15:55.817 に答える
1

その非常に遅い返信ですが、他の人に役立つかもしれません. Telerik グリッドの Ajax モードでは、サーバー テンプレートの列だけを使用することはできません。何にもバインドされていない追加の列をグリッドに追加したいだけの場合 (Ajax モードを維持しながら)、次のようなものを試してください

columns.Template(o=>{}).ClientTemplate(
    Html.ActionLink("<Link text here>", "<action name>", "<controller name>", 
        new { id = "<#= ID #>" }, new { @class = "Edit" }).ToString()
).Title("Edit Column")

これは適切にレンダリングされ、リンクに必要なデータも処理されます。

于 2011-06-26T10:18:04.560 に答える