私はHandsOnTableを使用して、自分のサイトでより多くのインタラクティブなデータベーステーブルを編集しています。Handsontable投稿前にオートコンプリート値をキーで置き換えてください
HandsOnTableは、データベースの一部の列が実際にローカル文字列値ではなく外部キーを実際に格納することを除いて、ほぼすべての要件を満たしています。
これらの列は、ユーザーが前述の外部キー(つまり、HTML名/値select
のようなもの)にマップされた読み取り可能な値を選択するドロップダウンメニューとして表示されます。
残念ながら、HandsOnTableにはこのようなセルタイプはありません。それに最も近いのはautocomplete
です。これにより、ドロップダウンを作成することができますが、値は含まれています。対応するキーはありません。ここではそれが作成される方法です。
{
"data": [
{ "ID": 1, "Description": "Crude", "Volume": 204, "Customer": "jebediah" },
{ "ID": 2, "Description": "Hidrogen", "Volume": 513, "Customer": "Bob" },
{ "ID": 3, "Description": "Coal", "Volume": '67', "Customer": "Bill" },
{ "ID": 4, "Description": "Wood", "Volume": '513', "Customer": "Buzz" }
],
"columns": [
{ "data": "ID", "type": "numeric" },
{ "data": "Description", "type": "text"},
{ "data: "Volume", "type": "numeric" },
{ "data": "color", "type": "autocomplete", "strict": "true",
"source": ["Jebediah", "Bob", "Bill", "Buzz"]}
]
}
:テーブルをレンダリングするためにHandsOnTableで必要なパラメータを含む
ワン:
"source": ["Jebediah", "Bob", "Bill", "Buzz"]
それでは、私が予定しており、サーバから2つのJSON文字列を送信することです値これまで
{
"mappings": [
{"key": 0, "value": "Jebediah"},
{"key": 0, "value": "Bob"},
{"key": 0, "value": "Bill"},
{"key": 0, "value": "Buzz"}
]
}
とても良いと
第2のマッピングキー。今トリッキーな部分のため:
HandsOnTableは私が戻ってサーバーに送信する準備ができてJSON文字列としてテーブルデータを取得することを可能にする機能(getData()
)を持つ:
var jdata = myHandsOnTable.getData();
このように:投稿する前に今すぐ
"data": [
{ "ID": 1, "Description": "Crude", "Volume": 204, "Customer": "jebediah" },
{ "ID": 2, "Description": "Hidrogen", "Volume": 513, "Customer": "Bob" },
{ "ID": 3, "Description": "Coal", "Volume": '67', "Customer": "Bill" },
{ "ID": 4, "Description": "Wood", "Volume": '513', "Customer": "Buzz" }
]
、私はmappings
JSON文字列内での一致するペアキーでCustomer
ノードの値ことを交換したいと思います。
JavaScript/JQueryでこれをどのようにして最高に達成できますか?
は、次のように何かを働く機能があります:?
jdata.replaceNode('node', mappings)
おかげ
、あなたは次のことを明確にできます:あなたのドロップダウンに条件付きのオプションを使用して、より高度なデモはで見つけることができます私が正しく理解していれば、ユーザーは 'CategoryName'と相互作用外字 'dropdown/select'#CategoriesFilterDropdownはユーザには表示されず、代わりにマッピング処理を簡略化するために使用されます。また、 'CategoryID'カラムをどのように隠すのですか? 'レンダラー'を使って 'hidden 'にCSSの' visibility'プロパティを設定するだけですか? – Chopo87
@ Chopo87、私が追加した '要約'を見てください。私の 'マッピングツール'として、私はCategoriesFilterDropdownを使用しています。これは表示され、ページの他の場所にあります。これは、他の目的でドロップダウンが必要で、データを複製する必要がないと感じたためです。あなたの場合は、代わりにハッシュテーブルを使用してIDを検索することができます。 – PostureOfLearning
素晴らしい、ありがとう@ PostureOfLearning !!! – Chopo87