2017-03-26 11 views
0

私はSQLテーブルの結果を持っています。剣道グリッド - データベースのセルフォーマットの動的列

ProductNumber ProductNumberColorClass注文番号OrderNumberColorClass

私は、この情報をレンダリングするために剣道を使用しようとしています。基本的に私は

ProductNumber注文番号

データ値として出力を必要とCSSクラス(ProductNumberColorClass)

を適用する基本的にこれは列の多くの報告です。ユーザーは、表示したい列のみを選択できます。

Webサイトの例を使用してグリッドをレンダリングすることができます。私は応募できません。

私のアプリケーションはAsp.net MVCアプリケーション

更新

私はあなたのフィードバックをしようとしています。これは私のコードです。基本的には、リストが50ほど大きいので、各列のコーディングを避けたかったのです。レポートをカスタマイズして、ユーザーが一部の列を非表示にすることができます。私はループを使いました。ただし、このシナリオでは、clienttemplateは機能しません。それがコードの問題であれば、私はあまりよく分かりません。

私のコードで何が間違っているのか分かっていれば、問題についても学ぶのに役立ちます。

meanwhileIはclienttemplateを追加し、カラム情報を働い指定アップデート2列を手動で入力し、可視

@(Html.Kendo().Grid <DataTransferObjects.ViewModels.UserReportDataModel>() 
    .Name("Grid") 
    .HtmlAttributes(new { style = "height: 550px;" }) 
    .Pageable(pageable => pageable 
     .Input(true) 
     .Numeric(false) 
    ) 
    .Sortable() 
    .Scrollable(
     scr => scr.Height(430) 
    ) 
    .Filterable() 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Read(read => read.Action("GetReportData", "ShortTermPlanner").Data("AdditionnalParameters")) 
     .PageSize(20) 
     .ServerOperation(false) 
    ) 
    .Columns(columns => 
    { 
     var colIndex = 0; 
     foreach (var col in Model.lstHeaderInformation) 
     { 
      if (col.SqlColumnName == "ProductNumber") 
      { 
       columns.Bound(col.SqlColumnName) 
         .Title(col.ColumnHeader) 
         .Filterable(false) 
         .Visible(col.IsVisible) 
         .Width(1190) 
         .ClientTemplate("<div style='background-color:red; text-align:center;width:70px'> #= ProductNumber # </div>");                 

      } 
      else 
      { 

       columns.Bound(col.SqlColumnName) 
          .Title(col.ColumnHeader) 
          .Filterable(true) 
          .Visible(true) 
          .Width(300) 
          .Locked(true) 
          .HtmlAttributes(new { @class = "selectedRow" }); 
      } 
     } 
    }) 
     .Resizable(resize => resize.Columns(true)) 
     .Reorderable(reorder => reorder.Columns(true)) 


) 

として属性を追加するつもりです。ありがとう

私は好奇心が強いですが、表示する必要があり、レポートに適用する必要がある列名、タイトル、クラスを定義する3つのテーブルをループする方法があります。私が探しています何

MYレポートです - reportcoldefinication とレポートから、それぞれのマッチングCOLNAMEのために今ではreportcoldefinication

から私のヘッダテーブルレポート SELECT * FROM COLNAME、タイトル、クラスを選択します。クラスが適用されたグリッドに列を追加します。

答えて

3

剣道グリッドの列にテンプレート機能を使用できます。
columns.Template(@<div class= '#=ProductNumberColorClass #'> #= ProductNumber#<div/>)

以下のリンクの例で実装しました。 JQueryを使用して実装されていますが、同じ目的を達成するために剣道のための剃刀構文を使用できます。 http://dojo.telerik.com/ukIma/3

+0

私はそれを試みます。これは私のコードです。 – user3545750

関連する問題