DataTable中根据某一个字段来改变本行格式

本文展示了如何在DataTable中,根据某列(如到期日期)的数据,若在一个月内到期,将整行设置为黄色背景并高亮显示日期。文章详细解释了`createdCell`函数的五个参数含义,以及它与`Render`的区别,`createdCell`能同时操作数据和格式,而`Render`只能处理数据。
摘要由CSDN通过智能技术生成

效果如图:
这里写图片描述

根据红色 字体这一列的数据,是到期日期,如果在一个月内到期的话,那么该行将会变成黄色显示,并且到期日期将会变成红色。

关于columns 和 columnDefs的区别,请看这篇
http://blog.csdn.net/beta_xiyan/article/details/76614992

代码如下:

  "aoColumnDefs":[
                   {//第 14 列 到期日期(一开始写的13,因为数数一般会从0 开始...) 
                        "targets":13,
                        createdCell: function(td, cellData, rowData) {
                            var data = cellData
                            if ((data+"").length>=8) {
                                var data1 = data.substr(0,4)+"/"+data.sub
Public Class Form1 Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged TextBox1.Font = New Font("宋体", TextBox1.Font.Size, TextBox1.Font.Style) End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged TextBox1.Font = New Font("隶书", TextBox1.Font.Size, TextBox1.Font.Style) End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged TextBox1.Font = New Font("黑体", TextBox1.Font.Size, TextBox1.Font.Style) End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox1.Font = New Font(TextBox1.Font.FontFamily, 12, TextBox1.Font.Style) End Sub Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox1.Font = New Font(TextBox1.Font.FontFamily, 18, TextBox1.Font.Style) End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox1.Font = New Font(TextBox1.Font.FontFamily, TextBox1.Font.Size, TextBox1.Font.Style) End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox1.Font = New Font(TextBox1.Font.FontFamily, TextBox1.Font.Size, TextBox1.Font.Style) End Sub Private Sub CheckBox1_CheckedChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If (CheckBox1.Checked) Then TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold) Else TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold) End If End Sub Private Sub Form1_Load(ByVal sender As System.Obje
在.NET DataTable,如果你想要根据某个字段(如`ICD`字段)进行两个DataTable的匹配,并删除其一个数据其他字段(假设是`OtherField`)与另一个数据字段不同的记录,你可以通过以下步骤操作: 1. 创建一个新的DataTable或者一个临时的数据集来存储结果。 2. 遍历第一个DataTable(称为源DataTable),对于每个条目: - 检查其`ICD`字段是否存在第二个DataTable(目标DataTable。 - 如果存在,比较`OtherField`的值。如果两者相等,则添加到结果集合;如果不等,则忽略这条记录。 3. 将结果集合转换回DataTable或者直接填充到原始DataTable(取决于需求)。 下面是一个示例代码片段: ```csharp DataTable result = new DataTable(); foreach (DataRow sourceRow in sourceDataTable.Rows) { string icdValue = sourceRow["ICD"].ToString(); if (targetDataTable.AsEnumerable().Any(row => row.Field<string>("ICD") == icdValue)) { DataRow matchRow = targetDataTable.AsEnumerable() .FirstOrDefault(row => row.Field<string>("ICD") == icdValue); if (matchRow != null && matchRow.Field<string>("OtherField").Equals(sourceRow.Field<string>("OtherField"))) { result.ImportRow(matchRow); } } } // 如果你想替换源DataTable内容,只需赋值给它 sourceDataTable = result; ``` 请注意,这个例子假设你的DataTable有索引或者`ICD`字段是唯一的,如果没有,性能可能会受到影响。如果`OtherField`不是字符串类型,你需要相应地调整字段访问和比较部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值