0
當我嘗試對m.Table進行動態排序時遇到問題。當選中複選框時排序m.Table
我有一個Json,如下所示,它爲我的表提供數據。
{
"ListeArticles": [
{
"id": "00000000000XXXXXX",
"text": "XXXXXXX",
"lot": "LOT2055",
"qte": "25.0",
"unit": "L",
"selected": false
},
{
"id": "00000000000YYYYY",
"text": "YYYYYY",
"lot": "2514AAAA",
"qte": "200.0",
"unit": "L",
"selected": false
}
]
}
我的表的第一列與「selected」作爲複選框綁定。 另外我的應用程序包含一個搜索字段,我在其中輸入「lot」。
我想要做的是標記與搜索字段中捕獲的「lot」對應的行,並在表格的開頭顯示標記行。 我沒有問題來選擇相應的行,但排序不起作用。
但是,如果我直接在表格中選擇一條線,並且在沒有「批次」信息的情況下單擊搜索字段上的放大鏡圖標,則排序工作...。
我的XML查看:
<SearchField placeholder="Recherche..." search="onSearch" width="100%" />
<Table id="tableArticles" items="{path: '/ListeArticles'}" inset="false">
<columns>
<Column>
<Text text="Sélection" />
</Column>
<Column>
<Text text="Article" />
</Column>
<Column>
<Text text="Lot" />
</Column>
<Column>
<Text text="Quantité" />
</Column>
<Column>
<Text text="+/-" />
</Column>
</columns>
<items>
<ColumnListItem>
<cells>
<CheckBox selected="{selected}" widht="1em" />
<ObjectIdentifier title="{text}" text="{id}" />
<Text text="{lot}" />
<Input value="{qte}" type="{Text}" description="{unit}"
fieldWidth="{30%}" />
<Panel><Button text="+" /><Button text="-" /></Panel>
</cells>
</ColumnListItem>
</items>
</Table>
加載模型視圖控制器:
onInit: function() {
var oModel = new sap.ui.model.json.JSONModel("./model/articles.json");
this.getView().setModel(oModel);
},
我的功能:onSearch
onSearch: function(oEvent){
var sValue = oEvent.getParameter("query");
var sTable = this.getView().byId("tableArticles");
var sModel = sTable.getModel();
var sData = sModel.getProperty("/ListeArticles");
for(i=0;i<sData.length;i++)
{
if(sData[i].lot==sValue)
{
sData[i].selected = "true";
sModel.refresh();
};
};
var oBinding = sTable.getBinding("items");
var oSorters = new sap.ui.model.Sorter("selected",true,false);
oBinding.sort(oSorters);
},
你有什麼做的想法不工作在我的功能?