datatable的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datatable的问题相关的知识,希望对你有一定的参考价值。

我现在有两个table a,b,把一个table a的部分字段的值赋值给b,并对a的某几个字段中的值进行比较,并把结果存到b中,请问我下面的代码要如何更改?
DataTable meteoReportTable = new DataTable("TempInvsersionMeteoReport");
foreach (DataRow dr in reportDataSet.Tables["YearlyMeteoReport"].Rows)

DataRow nRow = meteoReportTable.NewRow();
nRow.BeginEdit();
nRow["Year"] = dr["Year"];
nRow["Month"]= dr["Month"];
nRow["Day"] = dr["Day"];
nRow["Hour"] = dr["Hour"];

nRow.EndEdit();
if (Convert.ToInt32(dr["sumTempAve10"]) < Convert.ToInt32(dr["sumTempAve30"]))

int c = Convert.ToInt32(dr["sumTempAve10"]);



meteoReportTable.Rows.Add(nRow);

参考技术A 如果你的代码已经齐全的话,我觉得你的meteoReportTable好像还没有设置列,没有列那你怎么进行行的添加,其他代码,nRow.BeginEdit();和nRow.EndEdit();是多余的。

设置列的方法见下,你自己改下列名。
DataTable dt = new DataTable();
dt.Columns.Add("Goodsid", System.Type.GetType("System.String"));
dt.Columns.Add("Name", System.Type.GetType("System.String"));
dt.Columns.Add("Spec", System.Type.GetType("System.String"));
dt.Columns.Add("Partnum", System.Type.GetType("System.String"));
dt.Columns.Add("Num", System.Type.GetType("System.String"));
添加行的方法跟你一样了,见下
DataRow row = dt.NewRow();
row["Goodsid"] = shopcartprotid;
row["Name"] = shopcartprotname;
row["Spec"] = shopcartprotspec;
row["Partnum"] = shopcartprotpartnum;
row["Num"] = shopcartprotnum;
dt.Rows.Add(row);追问

那个定义列的部分没有放上去,那有些行是要通过另个表的两个字段数据的比较,这个能做到吗?

追答

你在给字段赋值前先判断啊,如果不想赋值,就不要执行dt.Rows.Add(row),不执行这个行就不会添加到新的表中了。
还有看你比较a表中的数据,比较是不是在同一个行中,同一行中可以直接比较,再决定是否进行添加,不同行的话肯定要通道变量了。

本回答被提问者采纳

如何更改 JQuery.DataTable 中单元格的样式?

【中文标题】如何更改 JQuery.DataTable 中单元格的样式?【英文标题】:How do you change the style of cell in a JQuery.DataTable? 【发布时间】:2011-02-16 13:40:44 【问题描述】:

我有一个关于为jQuery.DataTable 中的数据单元格设置样式属性的问题。使用以下代码初始化dataTable 时,我能够设置每列的宽度:

oTable = $('#example').dataTable( 
    "aoColumns" : [ 
         sWidth: '40%' , 
         sWidth: '60%' 
    ]
 );

现在我想更改第二列的对齐方式,如下所示:style="text-align: right;"

我正在使用此代码动态添加行:

/* Global var for counter */
var giCount = 2;

function fnClickAddRow() 
    oTable.fnAddData( [
        'col_1', 
        'col_2' ] );

    giCount++;  

你能告诉我如何在插入新行后选择第二个单元格如何在插入之前/期间设置行的样式?

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

酷,我很高兴地报告我能够回答我自己的问题!我刚刚定义了一个 CSS 样式(alignRight),并将样式添加到列中,如下所示:

<style media="all" type="text/css">
    .alignRight  text-align: right; 
</style>

oTable = $('#example').dataTable(   
    "aoColumns" : [   
         sWidth: '40%' ,   
         sWidth: '60%', sClass: "alignRight"   
    ]    );

【讨论】:

奇怪的是,上面的代码只有在我还添加以下内容时才有效: "className": "dt-center", "aTargets": "_all" 这不应该是答案,问题是关于添加内联样式而不是添加类【参考方案2】:

您还可以将类似的东西用于另一种自定义: 在 fnRender 中,您可以在此“td”中插入标签、跨度和设置元素的类或样式

"aoColumns": [
                     "sTitle": "Ativo","sClass": "center","bSearchable": true,
                        "fnRender": function(obj) 
                            var sReturn = obj.aData[ obj.iDataColumn ];
                            return "<a href=\"/"+sReturn.toLowerCase()+"\" class=\"tag\">/"+sReturn.toLowerCase()+"</a>";
                                           
                    ,

【讨论】:

【参考方案3】:
$('#tblAssignment tr td:nth-child(1)').addClass('rightaligned');

【讨论】:

【参考方案4】:

快速简便的方法是为表格添加nth-child 类。所以在你的情况下:

#example td:nth-child(2) 
    text-align: right;

【讨论】:

【参考方案5】:

这是对我有用的代码:

<style>
    #tableExample .classDataTable  font-size: 20px; 
</style>

oTable = $('#tableExample').dataTable(   
    "aoColumns" : [   
         sWidth: '40%' ,   
         sClass: "classDataTable"   
    ]    );

【讨论】:

以上是关于datatable的问题的主要内容,如果未能解决你的问题,请参考以下文章

将 primefaces 数据表与 org.primefaces.component.datatable.DataTable 绑定;

c# datatable 分组并统计

DataTable.Load(FbDataReader) 不会将所有内容加载到 DataTable

循环删除DataTable.Row中的多行问题

DataTable.Select 注入

从两个通过 LINQ 连接的 DataTable 创建组合的 DataTable。 C#