私は、ASP.NET で使用できるすべての埋め込みコード ブロックや機能について実際に学んだことはありません。私がやろうとしていることは次のとおりです。
- リピーターがいます
- テーブルをレンダリングします
- 各行に、
data-bind
いくつかのテキストと行インデックスを含む属性 (Knockout の場合) を追加する必要があります。
より具体的には、レンダリングしたい:
<table>
<tr data-bind="with:myItems()[0]">
...
</tr>
<tr data-bind="with:myItems()[1]">
...
</tr>
<tr data-bind="with:myItems()[2]">
...
</tr>
</table>
私はもう試した:
data-bind="<%# String.Format("myItems()[{0}]", Container.ItemIndex) %>"
しかし、それは機能しません (data-bind="<%# Container.ItemIndex %>
ただし、機能します。そのため、コードをデータバインドされたアイテムからの情報と組み合わせようとしています。
Knockout にバインドがあることは知っていますが、次のforeach
理由で使用できません。
- HTML を最初にサーバー側で構築したい/必要とする
- HTMLがすでに存在している必要がある他の特定のjavascriptがあるため、Knockoutにテーブルを入力させることはできません
- ASP.NET Repeater を使用していますが、これは Knockout のテンプレートとうまく組み合わせられません。
また、コード ビハインド ( with <tr runat="server" ... >
) でこれを行うこともできますが、すべてのレイアウトと JavaScript を C# コードではなく、マークアップと js ファイルに入れようとしています。
では、何らかの方法でマークアップにコードを追加して、選択したテキストと現在のデータバインドされたアイテムからの情報を結合することはできますか?