条件付き DetailView について質問があることは知っていますが、それは私が探しているものではないと感じています。私は MVC 用の Telerik Grid をいじっていましたが、グリッド内の行の DetailView を作成することができました。現在のところ、私の DetailView は HTML コードで満たされているため、内部に新しいモデルを作成したいと考えています。
1 つの列の値に基づいて、その列の値に一致する行に対してのみ DetailView を作成したいと考えています。したがって、たとえば、列の「タイプ」がフルーツに等しい場合、そのための DetailView を作成する必要があります (「+」記号を使用)。「タイプ」が野菜の場合、(「+」記号なしで) DetailView を作成しないでください。
私の現在のコードは次のようになります。
Html.Telerik().Grid<SearchViewModel>(Model)
.Name("Search")
.Columns(columns =>
{
columns.Bound(o => o.Type).Width(60);
//etc.
})
//.PrefixUrlParameters(false)
.DetailView(detailView => detailView.ClientTemplate(
"<div>" +
"<h5><span>Details for Type:</span></h5><div><#= DetailsType #></div>" +
"</div>"
))
ご覧のとおり、グリッド内のすべての行に対して DetailView を作成しています。
また、特定の条件でプラス記号を非表示にする JavaScript を見つけましたが、初期ロードでは機能しません (フィルタリング、ページング、または更新要求を行った後のみ)。スクリプトは .OnRowDataBound にバインドされています。
function hidePlusSign(e) {
var row = e.row;
var dataItem = e.dataItem;
if (dataItem.Type != "Fruit") {
$('a.t-icon', e.row.cells).css('display', 'none');
}