我想篩選一個結果RemoteDataSource。使用setFilter功能我可以通過在過濾器的陣列,但目前沒有指定我是否要應用(濾波器1和過濾器2),或(濾波器1OR過濾器2的方式)。Upshot setFilter
$.each(query.filters, function (index, filter) {
if (filterParameter) {
filterParameter += " and ";
}
filterParameter += applyOperator(filter.property, filter.operator, filter.value);
});
正如你所看到的,「和」是硬編碼到結果:展望upshot.js代碼,爲什麼它是清晰可見。是否有任何其他方式支持「或」「之間的過濾器,還是我將不得不手動修改的東西?如果必須修改,最好的方法是什麼,以便我在更新到新版本的結果時不會丟棄我的修改?
這是和ASP.NET forums上的問題相同的問題。
我想這也是一個選項,但是當你擁有動態過濾器屬性時,建立和維護似乎過於困難。由於它無論如何都是黑客攻擊,因此只需修改結果中的代碼就可以更容易地考慮到將在過濾器之間設置「和」或「或」的第四個參數。 – 2012-04-07 19:44:53
您問題中的代碼似乎來自Upshot的「DataProvider.OData.js」部分。如果我正確讀取RemoteDataSource的構造函數,則可以將自己的自定義dataProvider作爲參數傳遞給RemoteDataSource。這將允許您按照您的要求進行過濾,而無需更少的維護問題 – 2012-04-10 12:11:07