ウィジェット ファクトリを使用して、「Picklist」という jQueryUI ウィジェットを作成しました。それはうまくいきます。ただし、ウィジェットなのでval()メソッドには反応しません。
配列をループしてデータを Web コントロールに割り当てる関数があります。ほとんどの場合、jQuery メソッド val() を使用して値を割り当てることができます。しかし、それは私のウィジェットでは機能しません。
代わりに、コントロールにウィジェットが存在するかどうかを手動で確認し、ウィジェット バージョンの val() を呼び出して割り当てを行う必要があります。これは非常に非効率的であり、優れたオブジェクト指向設計とは対照的です。
for (var i = 0; i < ControlData.length; i++)
{
var mapping = ControlData[i];
$('#' + mapping.controlName).val(mapping.value);
if ($('#' + mapping.controlName).data('Erik-Picklist'))
{
$('#' + mapping.controlName).Picklist("option", { val: mapping.value });
}
}
val() を特定の要素のウィジェット メソッドにマップする方法はありますか? val() メソッドを Picklist の val() メソッドにマップする要素で呼び出すことができるメソッドがあるのではないかと考えていましたが、そのような例は見たことがありません。