1

私の「通常の」HTMLテーブルをGoogleのDataTableに変換しています。 ほとんどの場合、固定ヘッダーと並べ替えができます。 Creating advanced KnockOut binding handler for google.visualization.datatableのおかげで、DataTable用のKnockOutバインディングハンドラを作成することができました。 これはの読み取り専用データに最適です。チェックボックスとKnockOutのデータバインドでgoogle.visualization.datatableを組み合わせる

今、すべての行にチェックボックスと入力テキストボックスがあるテーブルを変換します。これらのフォーム要素を作成することは問題ではありませんが、KnockOutデータバインドを使用しています。これらのデータバインディングをデータテーブルに追加する方法は?

data.setCell(
    0, 0, "<input type='checkbox' data-bind=checked: ' " + order.inOrder + "'/>" 
); 

data.setCell(
    0, 0, "<input type='checkbox' data-bind=checked: order.inOrder />" 
); 

しかし、両方が動作しません: 私はこれを試してみました。もちろん私は答えを見つけるためにGoogleを使ってみましたが、これまでの運はありません。

編集: いくつかのより多くの背景情報: 私たちは、AJAXを使用して、テーブルを移入サーバーからいくつかのデータを取得し、かなり複雑ページを持っています。 Google.Visualizationの部分はRequireJSの外にありますが、統合に問題があるためRequireJSも使用します)

このページは注文システムのウィザードの一部であり、チェックボックスは 'ドン' t order 'を入力し、入力ボックスに在庫を入力します。表は次のとおりです。

checkbox|Product name|amount|input box for stock|amount minus stock|price 

[次へ]ボタンは、チェックボックスとストックの(更新された)値を含むテーブル全体を保存する必要があります。

+0

いつあなたはKOでバインディングを実行していますか?すべてが整った後でなければなりません。 Googleがデータを変更した場合(ページ区切りなど)、おそらく問題があります。それが助けにならない場合は、生成されたHTMLコードとviewModelのサンプルを共有してください – brianlmerritt

+0

私は質問を更新し、さらに背景情報を追加しました。私はあなたを正しく理解していますか、私は何が欲しいのですか? –

+0

可能性がありますが、実行順序を確認する必要があります。たとえば、htmlを作成するとき、ビューモデルを作成するとき、バインドするときなどがあります。最小完全で検証可能な例:http://stackoverflow.com/help/mcve – brianlmerritt

答えて

0

は、データバインディングは、あなたのような、とにかく手動

をDataTableのをロードする必要があるため、それは、ちょうど、多くの利点が表示されないでしょう場合でも、Googleのチャート

で動作するように起こっているとは思いませんDataTableをロード中に必要な値を供給、
何かのような...
data.setCell(0, 0, "<input type='checkbox' " + ((order.inOrder === true) ? "checked" : "") + "/>");

他の思考...

テーブルチャートがページングボタンを使用する場合、現在のページの行のみがレンダリングされるので、各'page'イベントでバインディングが何らかの形で発生する必要があります。

テーブルチャートのチェックボックスを使用すると、'select'イベントが発生します。クリックしたときのテーブル行

+0

私はページネーションを使用していないので問題ありません。チェックボックスと入力ボックスの初期値を設定することは問題ありません。しかし、私は変更を保存する必要があり、現在私たちはそのためにオブザーバブルを使用しています。また、入力ボックスの値を変更すると、観測可能な別のセルの値が変更されます。 KOバインディングを使用できない場合は、現在の機能を維持する方法はわかりません。バインディングについてKOエラーが発生しているので、データテーブルがファイナライズされる前にKOが実行されていると仮定します。 –

+0

バインドする前にテーブル・チャートの '' ready''イベントを待つことができますか? – WhiteHat

関連する問題