2017-04-12 20 views
1

私は簡単な入力テキストボックスとグリッド(いくつかのDBデータを表示)を含む.net MVCで簡単なWebアプリケーションを作成しました。 ProcessedDateには値が(」「)SOMのカスタム機能を持つボタンが表示されていない場合剣道UIグリッドに動的にボタンを追加するMVC

@(Html.Kendo().Grid<Z.ViewModels.ZViewModel>() 
    .Name("grid") 
    .Columns(columns => 
    { 
     columns.Bound(c => c.Number); 
     columns.Bound(c => c.AddedDate); 
     columns.Bound(c => c.ProcessingMessageText); 
     columns.Bound(c => c.ProcessedDate). 

    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Read(read => read.Action("Read", "Home")) 
     .PageSize(20) 
    ) 
     ) 

今私は...このページに別の機能を追加する必要があります(番号列からパラメータを持つコントローラからアクションを呼び出します)それ以外の場合は値を表示します。
これは可能ですか?

私はこのようなものを試しましたが、ClientTemplate("# if (ProcessingMessageText =='') {# <button>do stuff</button> #} else if (ProcessingMessageText !='') {# ProcessedDate <#}# "); }).Events(e => e.DataBound("onDataBound"))が働いていませんでした。

...呼び出し、テンプレート列を使用して任意のヘルプ

答えて

0

ため

function onDataBound(e) { 


     var grid = this; 
     var currentRecords = grid.dataSource.view(); 

     for (var i = 0; i < currentRecords.length; i++) { 
      //currentRecords[i] is the current dataItem 
      if (currentRecords[i].ProcessingMessageText == "Finished") { 
       grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowSucess"); 
      } 

      if (currentRecords[i].ProcessingMessageText == "Sent") { 
       var row= grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowSent"); 


      } 

      else if (currentRecords[i].ProcessingMessageText == "Error") { 
       grid.tbody.find("tr[data-uid='" + currentRecords[i].uid + "']").addClass("rowError"); 


      } 


     } 
    } 

おかげで、私は、行の色を変更する機能を持っている...しかし、私は列の値にアクセスする方法を知りませんあなたのMVCアクションとパラメータ(数値)を渡すのはかなり簡単です。この例では、コントローラを呼び出すためのブートストラップボタンを作成し、剣道ハッシュタグ構文を使用して 'number'というパラメータを渡します。あなたは、フィールドがそうでなければ、ボタンを表示し、空でない場合ステートメントは、日付を表示する場合は、あなたを追加する必要があり、二重引用符:

columns.Template(t => { }).Title(string.Empty).Width(40) 
    .ClientTemplate(@"<a href='" + Url.Action("MyAction","MyController") + "?number=#= Number#' class='btn btn-info btn-xs' title='Modify this item'>Edit</a>"); 

対単一で気をつけて。

+0

ありがとう...これは動作します:) 。 –

関連する問題