- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使表可配置。在此之前,我正在制作演示组件,通过它我可以制作自己的可配置表。
我想传递一些东西到我的 table 上,比如 column names
和 data
.
列名我想这样传递:
headers = [
{name: 'Sr.No'},
{name: 'name', dataType: 'text'},
{name: 'mobile', dataType: 'number'},
{name: 'date', dataType: 'date'},
{name: 'Action'}
];
dataType
上述说明此列将具有输入类型
text
什么时候
editable
,同样适用于
number
和
date
以及。
<td>
我无法检查此
dataType
key 。我试过这个:
html
<table class="row-border border-1 table">
<thead>
<tr>
<th *ngFor="let head of headers">{{head.name}}</th>
</tr>
</thead>
<tr *ngFor="let tableData of data; let i=index">
<td>{{i+1}}</td>
<ng-container *ngIf="tableData.isEditable; else viewable">
<div *ngIf="tableData.dataType ==='text'">
<input type="text">
</div>
<div *ngIf="tableData.dataType ==='date'">
<input type="date" >
</div>
<div *ngIf="tableData.dataType ==='number'">
<input type="date">
</div>
</ng-container>
<td>
<button *ngIf="!tableData.isEditable" (click)="onEdit(tableData)">Edit</button>
<button *ngIf="!tableData.isEditable">Delete</button>
<button *ngIf="tableData.isEditable" (click)="onSave(tableData)">Update</button>
</td>
<ng-template #viewable>
<td>{{tableData.name}}</td>
<td>{{tableData.mobile}}</td>
<td>{{tableData.date}}</td>
</ng-template>
</tr>
</table>
ts file
headers = [
{name: 'Sr.No'},
{name: 'name', dataType: 'text'},
{name: 'mobile', dataType: 'number'},
{name: 'date', dataType: 'date'},
{name: 'Action'}
];
data = [
{id:1, name: 'sam', mobile: '8788888888', date: '20/11/2021', isEditable: false},
{id:2, name: 'joy', mobile: '9788888888', date: '22/11/2021', isEditable: false},
]
onEdit(data) {
this.data.map((item) => {
item.isEditable = data.id === item.id;
})
}
onSave(data) {
data.isEditable = false;
}
有什么办法,以便我可以检查列数据类型,并基于此我可以在单击
edit
时在该行的单元格中显示该输入框按钮?提前致谢!!!
最佳答案
哦,亲爱的上帝,我过去花了很多时间来创建漂亮且可编辑的表格。
我知道这有多烦人,所以我花时间看了你的例子。
这是我以您为例的一个快速且非常脏的版本。
您需要能够将标题映射到数据的属性,否则您无法确定哪一列代表哪些值,因为它当前在您的示例中是硬编码的。
headers = [
{name: 'Sr.No'},
{name: 'name', dataType: 'text', mappedProperty: 'name'},
{name: 'mobile', dataType: 'number', mappedProperty: 'mobile'},
{name: 'date', dataType: 'date', mappedProperty: 'date'},
{name: 'Action'}];
此外,您需要遍历 View 模板中的 header 以获取 mappingProperty 并确定它具有哪种数据类型。
<table class="row-border border-1 table">
<thead>
<tr>
<th *ngFor="let head of headers">{{head.name}}</th>
</tr>
</thead>
<tr *ngFor="let tableData of data; let i=index">
<td>{{i + 1}}</td>
<ng-container *ngIf="tableData.isEditable; else viewable">
<ng-container *ngFor="let head of headers">
<ng-container *ngIf="head.mappedProperty">
<td>
<input [type]="head.dataType" [(ngModel)]="tableData[head.mappedProperty]">
</td>
</ng-container>
</ng-container>
</ng-container>
<td>
<button *ngIf="!tableData.isEditable" (click)="onEdit(tableData)">Edit</button>
<button *ngIf="!tableData.isEditable">Delete</button>
<button *ngIf="tableData.isEditable" (click)="onSave(tableData)">Update</button>
</td>
<ng-template #viewable>
<td>{{tableData.name}}</td>
<td>{{tableData.mobile}}</td>
<td>{{tableData.date}}</td>
</ng-template>
</tr>
</table>
这是 onEdit 函数。在我看来,您只需要切换 isEditable。但我不确定您在示例中尝试了什么,因此对于任何误解,我们深表歉意:
onEdit(tableData: any) {
tableData.isEditable = !tableData.isEditable;
}
享受这个例子的乐趣,如果您需要任何帮助,请告诉我。
<my-table-component [columnDefinition]="headers" [rows]="data"></my-table-component>
关于javascript - 如何检查表列数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65747437/
我有一个输入文件 Corn Fiber 17 Beans Protein 12 Milk Protien 15 Butter Fat 201 Eggs Fat 2 Bread Fiber 12 Egg
有什么方法可以检查工作表是否有过滤数据(如果有过滤数据,则清除过滤器,否则不执行任何操作)?我这里有这段代码,但我不知道如何编写第二部分: Sub ProtectAll() Dim wSheet
我正在编写如下查询,以根据特定值从表中检索特定值。 select name from XXX where number="2033" 此查询将在整个表中搜索。现在我希望这个查询应该只检查从第四行到最后
有没有办法检查您尝试保存到表中的实例是否已存在于该表中,但您不知道这样的 ID: MyObject instance = (MyObject) session.get(MyObject.class,
有没有办法检查表的列中是否存在多个值,即使这些值不在同一行中? 我有这个问题: select (select country from storage where country = 'Germany
我正在尝试构建一个脚本,使用 jQuery $each 函数检查复选框是否被选中。下面是 HTML 代码: World Economy
我想检查表 tr td 是否仍然有虚拟文本。如果那是真的,那么应该出现一条消息,他们必须在那里输入一些文本(通过拖放) 拖放工作正常那不是问题我只需要检查 td 是否仍然有虚拟 tekst否则无法进行
我有一个主表人 人员字段:Id、AlterationDate 以及一对多链接中的操作表操作 操作字段:Id、PeopleID、CreationDate 我想查找 people 中更改日期晚于由 per
CREATE UNLOGGED TABLE IF NOT EXISTS 我如何首先检查是否创建了所需的表 UNLOGGED,如果没有相应地更改表? Postgres 9.4 最佳答案 您可以检查表
我试图在鼠标悬停时突出显示表格行。每行 (tr) 已经有一个“偶数”或“奇数”类。因此,要突出显示鼠标悬停时的行,我需要先从该行中删除 CSS 类“偶数”或“奇数”。请多多看我的剧本: $('tr')
我想检查一行是否包含具有特定标题和年份的 td。这是我的函数,问题是 title2 和year2 设置为未定义。如何正确获取单元格值? var table = $("#mainTable");
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
我有一个名为:workers 的表和一个名为:schedule 的表,其格式如下: worker : id, name 时间表: day, month, name 我需要询问表“workers”给我两
我有以下功能,它显示来自数据库的博客文章: function show_blog_posts() { include('connection.php'); $sql = "SELECT
我有一个包含行的表,每一行都有几个 元素。最后一个元素有一个复选框。他们在 设置为 runat="server" .我在页面上有另一个名为“chkAll”的复选框,单击它时,我想用 javascrip
我希望创建一个 HIVE SQL 查询来查找表 1 中不存在于表 2 中的所有值。我知道我需要使用连接,但是我无法弄清楚如何在这种情况下实现它...... 谢谢, 詹姆士 例如: Table1 url
我想做的是创建一个随机字符串,对照表检查它,如果它已经存在,则创建一个新的随机字符串,然后重试,如果它没有将其插入到所述表中。 我的脚本基于昨天给我的脚本,除了 if(mysql_num_rows($
我正在尝试创建一个页面来查找您输入的文本是否存在于我的数据库表中。但即使存在,它也只返回 0。 最佳答案 total; } ?> 关于php - 检查表(
我有一个名为 origA 的数据框: X, Y 10, 20 11, 2 9, 35 8, 7 还有一个名为 calcB 的: Xc, Yc 1, 7 9, 22 我想检查 calcB 中的每个 Xc
嗨,我有两个表,一个是 topic_dialogue,第二个表是 topic_dialogue_comments 表 topic_dialogue 具有列 id,表 topic_dialogue_co
我是一名优秀的程序员,十分优秀!