我正在为Angular2寻找更好的表格表示,发现ng2-smart-table很好用。但问题是它似乎没有提供在内联编辑中使用下拉列表或日期选择器的直接方法。
有没有办法让它成为可能,或者我可以用什么替代组件来代表Angular2应用程序中的表格视图。
答案 0 :(得分:5)
对于datepicker:
在设置[.ts]
中
settings={
columns:{
// other columns here
dob: {//date of birth
title: 'yyyy/mm/dd hh:mm',
type: 'html',
editor: {
type: 'custom',
component: DoBComponent,
},
}
}
在dob.component.html
中
<owl-date-time autoClose [(ngModel)]="datevalue" dataType="string"
(click)="updateValue()">
</owl-date-time>
在dob.component.ts中
datevalue: any;
updateValue(){
console.log(this.datevalue);
this.cell.newValue = this.datevalue;
}
where your DoBComponent extends DefaultEditor
在你的module.ts
中
declarations:[
//other compnents here
DoBComponent
]
entryComponents: [
DoBComponent
]
希望这会有所帮助!!!
参考:https://www.npmjs.com/package/ng-pick-datetime, https://akveo.github.io/ng2-smart-table/#/examples/custom-editors-viewers
答案 1 :(得分:4)
我找到了类似这样的东西用于下拉:
private settings = {
columns: {
name: {
title: 'Name'
},
valid: {
title: 'Valid',
type: 'html',
editor: {
type: 'list',
config: {
list: [
{value: true, title: 'Valid'},
{value: false, title: 'Not valid'}
],
},
}
}, //... more columns
}
}
答案 2 :(得分:0)
当我使用@ ampati-hareesh的灵魂时,我遇到了三个问题。
“用于具有未指定名称属性的表单控件的无值访问器”。在owl-date-time中添加ngDefaultControl即可解决该问题。
“无法读取未定义的属性'isInSingleMode'”。添加“ input”标签即可解决。
未分配值。将事件从“单击”更改为“ afterPickerClosed”即可解决。
我最终的dob.component.html看起来像;
<input placeholder=""
[(ngModel)]="dateValue"
[owlDateTimeTrigger]="dt1" [owlDateTime]="dt1">
<owl-date-time [pickerType]="'calendar'" autoClose [(ngModel)]="dateValue"
ngDefaultControl dataType="string"
(afterPickerClosed)="updateValue()" #dt1>
</owl-date-time>
答案 3 :(得分:0)
public settings = {
actions: {
position: 'right',
//custom: [{ name: 'routeToAPage', title: `<img src="/icon.png">` }]
},
columns: {
ctg_name: {
title: 'Category',
},
ctg_visible: {
title: 'Visible',
editor: {
type: 'list',
config: {
selectText: 'Select',
list: [
{value: '1', title:'True'},
{value: '0', title:'False'}
],
},
}
}
},
};