~/Views/Shared/DisplayTemplates
namedに表示テンプレートを作成しましたImpactMatrix.cshtml
。null 許容の int を受け入れ、選択した数値が強調表示された 2 次元マトリックスをレンダリングします。
@model int?
@{
var matrix = ImpactMatrix.GetMatrix();
}
<div class="impactmatrix">
<table>
@for (int i = 0; i < matrix.GetLength(0); i++)
{
<tr>
@for (int j = 0; j < matrix.GetLength(1); j++)
{
var cell = matrix[i, j];
<td data-color="@cell.Color"
class="matrix @(Model == cell.Value ? cell.Color.ToString() : "")">
@cell.Value
</td>
}
</tr>
}
</table>
</div>
簡単に再利用でき、優れた機能を発揮します。次のようにビュー内で呼び出すことができます。
@Html.DisplayFor(m=> m.ImpactFactor, "ImpactMatrix")
今、私はそれを拡張して、エディターにもすることにしました。アイデアは、選択した数値の非表示の入力を追加し、入力をマトリックス テンプレートと共に div でラップすることです。そこから、JavaScript を使用してディスプレイ グリッドと対話し、非表示の入力を設定するのは簡単なことです。
という名前のエディター テンプレートをフォルダーImpactMatrix.cshtml
内に作成しました。~/Views/Shared/EditorTemplates
コードは次のとおりです。
@model int?
<div class="impactmatrix-editor">
@Html.HiddenFor(m => m)
@Html.DisplayFor(m => m, "ImpactMatrix")
</div>
私の問題は、非表示の入力が正しくレンダリングされることですが、ネストされた表示テンプレートがエディター テンプレート内でレンダリングされません。私がやろうとしていることは可能ですか?