剣道グリッドカスタムフィルタのフィルタ値をプログラムで設定しようとしています。私が適用された場合剣道グリッドカスタムフッタフィルタ値をプログラムで設定する
function getFieldFilter() {
return {
cell: {
template: function (args) {
var element = args.element;
element.kendoComboBox({
dataSource: {
transport: {
read: 'api/Items'
}
},
valuePrimitive: true,
dataTextField: 'Description',
dataValueField: 'Code'
});
},
showOperators: false
}
};
}
:次のフィルタで
{
width: '140px',
title: 'MyFieldTitle',
field: 'MyField',
filterable: getFieldFilter()
}
:オプションがどのように見える
gridOptions.dataSource.filter = [
{
field: 'MyField',
operator: 'eq',
value: newTextValue
}
];
グリッドの私のフィールド定義:ように私は私の新しいフィルタ値を適用しています上記のようにフィルターを適用すると、列内のkendoComboBoxをクリックしてもう一度その外側をクリックした後にのみ機能します。 私の最初の考えは、剣道のグリッドはdataValueField
を適用せず、dataTextField
を設定するだけでした。剣道グリッドがサーバーに送信しているリクエストをチェックしていたとき、kendoComboBox自体(テキスト)に格納されている値に送信されていて、その背後の値ではありませんでした。
UIからkendoComboBoxで何かを選択すると、すべてうまく動作します。しかし、私が上記のようにプログラムで設定した場合、それはしません。
kendoComboBoxの内部値をリフレッシュするには、何らかの状態をリフレッシュする必要がありますか?この問題を解決するにはどうすればよいですか?
EDIT: グリッドからkendoCombobox
の値を取得しようとしています。
var currentlyAppliedFilters = grid.dataSource.filter().filters;
for (var filter of currentlyAppliedFilters) {
if (filter.field === 'MyField') {
var currentlyApplied = filter.value;
}
}
したがって、上記のコードは、私にkendoCombobox
内の項目のDescription
性質を与えるだろうが、私は実際にそれをCode
プロパティを取得したいのか。
私の場合は、別の 'dataTextField'と' dataValueField'を使用しているか、またはテキスト入力で 'kendoDropDownList'を持っているために違うようです。 –