1

ASP.NET MVC4 を使用して、テーブル内の行を動的に生成しています。ノックアウトを使用して、上記のテーブルの生成された各行のチェックボックスの有効なプロパティを、その列に指定された数のチェックボックスがあるかどうかを評価する式にバインドしたいと考えています。

これが私のテーブルの例です:

<table>
    <tr>
        <th>Happy?</th>
    </tr>
    @for (int z = 0; z < Model.People.Count; z++) { 
    <tr>
        <td>@Html.CheckboxFor(Model.People[z].Happy,new{@data_bind= "checked: CheckedHappyPeople, enable: CheckedHappyPeople.length < 5 || CheckedHappyPeople"})
        </td>
    }
    </tr>
</table>

そして私のVM:

function viewModel(){
var self = this;
self.CheckedHappyPeople = ko.observableArray();
}

そして私のモデル:

public class PeopleViewModel
{
public List<People> {get; set;}

public PeopleViewModel(){}
}

public class People
{
public bool Happy {get; set;}
}

上記の内容では、「幸せな」チェックボックスを選択するたびに、テーブル内のすべてのチェックボックスがオン/オフになります。Knockout を使用してこれらの動的に生成された要素にバインドするにはどうすればよいですか? foreachどうにかして ASP.NET MVC4 内でバインディングを使用する必要がありますか?

4

1 に答える 1

0

他の人にコードを書いてもらうのではなく、Knockout を学び、理解するように努めるべきです。1 つは、他の誰かにやってもらっても何も学べないということです。2 つは、私が書いているコードを理解していないということです。そうは言っても、これは他の人が将来探しているかもしれない解決策なので、ここに答えがあります.

http://jsfiddle.net/gzsgy/14/

<input data-bind="checked: Selected, enable: $parent.selections() < 5 || Selected()" type="checkbox" />

選択を追跡し、5 つ以上の選択がある場合、または既にチェックされている場合はチェックボックスを無効にして、チェックを外すことができるようにします。

于 2013-09-14T15:13:14.833 に答える