4

TelerikGridを使用しています。ビューモデルのプロパティに基づいて、行全体の背景色を設定する必要があります。各列のIFステートメントに背景を設定して、以下のようにしようとしましたが、背景はすべてのセル(td)ではなく要素にのみ適用されます。また、それはこのタスクを達成するための非常に「汚い」方法のようです。

@(Html.Telerik().Grid(Model.SomeItems).Name("Grid")
               .Columns(columns =>
               {
                   columns.Template(
                       @<text>
                          @if (Model.IsOfSpecialColor)
                           {
                             <div class="gridRowBackground">
                               @Html.ActionLink(...)
                             </div>
                           }
                           else
                           {                                        
                              @Html.ActionLink(...)
                           }
                      </text>).Title("Blabla");
                });
4

2 に答える 2

11

onRowDataBoundイベントを使用して変更できます

@(Html.Telerik().Grid<Customer>()
      .Name("Grid2")
      .DataBinding(d => d.Ajax().Select("Select", "Home"))
      .ClientEvents(e => e.OnRowDataBound("onRowDataBound"))
)

そして機能は

<script>
function onRowDataBound(e) {
    if (e.dataItem.ID == 2) {
        e.row.style.backgroundColor = "grey";
    }
}
</script>
于 2012-07-03T12:46:41.507 に答える
2

サーバーデータバインディングを使用している場合は、CellActionを使用できます。ただし、ajaxデータバインディングを使用している場合は、Tassadaqueが提案するようなソリューションを使用する必要があります。

@(Html.Telerik().Grid(Model.SomeItems)
.Name("Grid")
.CellAction(cell =>
{
    if (cell.DataItem.IsOfSpecialColor.Value)
    {
      cell.HtmlAttributes["style"] = "background-color: red";
    }
})
于 2012-07-03T13:27:00.203 に答える