通常,
会生成小区IDthis.getId
控制台写道:this.getId()不是函数
我有一个Datepicker;我在那里制作格式化程序:
<m:DatePicker value="{
path: 'items>Lfdat',
type: 'sap.ui.model.type.Date',
formatter: '.formatter.getColour',
我也可以调试方法getColour但我不能使用this.getId()。
Formatter.js看起来像这样:
getColour : function(sDate) {
var cell = this.getId() // is not a function
}
有人知道我如何读取ID并因此更改背景颜色?
答案 0 :(得分:1)
您没有获得Datepicker的ID,因为在Formatter.js this
中,window
对象表示不是datepicker。
最好为日期选择器提供ID。
<m:DatePicker id="myDate" value="{
...
然后在Formatter.js
getColour : function(sDate) {
var cell = sap.ui.getCore().byId("myDate");
// now cell is the reference to your datepicker
}
答案 1 :(得分:0)
@Mario格式化程序不会更改控件的格式,它仅用于格式化控件的属性。
我建议
您可以使用documentation
而不是设置表格单元格或DatePicker本身的背景颜色吗?<m:DatePicker value="2016-Jan-08" valueState="{
path : 'name',
formatter : '.validate'}"/>
并且验证函数写在控制器中,如下所示
validate : function(name)
{
return sap.ui.core.ValueState.Error;
}
答案 2 :(得分:-1)
@Tuhin,id不会有帮助,因为它在表格中
@Mario 你的&#34;这个&#34;是控制器,而不是细胞控制。 如果我理解正确的话,你可以做到这一点,以实现你所寻找的 示例基于ui表。不是桌子。 将代码放入onInit
var someColumn = this.getView().byId("someColumn");
someTemplate = someColumn .getTemplate();
someTemplate .bindProperty("someproperty", {
parts : [{
path : 'somepath'
}, {
path : 'somepath1'
}],
formatter : Util.yourformatter
});
如果你喜欢这样,你将获得正确的&#34;这个&#34;你想要格式化程序
added8.4
<m:DatePicker value="{
path: 'items>Lfdat',
type: 'sap.ui.model.type.Date',
formatter: 'sap.ui.demo.tdg.util.Formatter.getColour',
this is example from sap, which defines a global formatter
//// formatter从这里开始
jQuery.sap.declare(&#34; sap.ui.demo.tdg.util.Formatter&#34);
sap.ui.demo.tdg.util.Formatter = {
getColor:function(){
//&#34;这&#34;将是datepicker
}
};
// formatter在这里结束
//将此行放入您的控制器
jQuery.sap.require(&#34; sap.ui.demo.tdg.util.Formatter&#34);
相应地更改名称空间。