2012-10-04 27 views
3

我有以下一段代碼。我在我的Razor視圖中使用Html,並使用KnockOut JS綁定到我的下拉列表。如何在Html和KnockOut JS下拉列表中動態設置索引?

正如你所看到的,我已經編程設置了索引,因爲td是每個索引的一部分,我需要索引是唯一的。

我正面臨的問題是在選項部分,我只能通過實際硬編碼來設置索引。

請有人可以告訴我怎麼可以設置它,所以它讀取:

選項:viewModel.MyForm.Items()」 +指數()+ '] .SubItems()' +指數() +'] .MyItemsList(), value:viewModel.MyForm.Items()['+ Index()+'] .SubItems()['+ Index()+'] .Id, 對此有任何幫助非常感謝。

非常感謝。

<td> 
<select data-bind="attr: { name: 'MyForm.Items[' + Index() + '].SubItems[' + Index() + '].Id', 
id: 'MyForm_Items[' + Index() + '].SubItems[' + Index() + ']._Id'}, 
options: viewModel.MyForm.Items()[0].SubItems()[0].MyItemsList(), value: viewModel.MyForm.Items()[0].SubItems()[0].Id, 
optionsCaption: 'Select', optionsText: 'Text', optionsValue: 'Value'" 
data-val-required="Required." data-val-number="The field must be a number" data-val="true"></select></td> 

回答

0

只是爲了澄清,你是否需要讓TD攜帶一個唯一的ID來匹配你的模型的一部分? 否則,將您的每個循環之前和之後移至,並在下拉列表中構建項目。

<td><select name='subitems' id='subitems'> 
@{foreach (blah in ViewModel.MyForm.Items) 
    { 
     ...   
    } 
} 
</select>