js中这样获取DataTable中的行中的列数据??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中这样获取DataTable中的行中的列数据??相关的知识,希望对你有一定的参考价值。

CurDT//为DataTable数据类型,数据存在(4行5列数据,都有值)
CurDT.Rows[0]["ID"]//数据正常
CurDT.Rows[0].ID//数据正常
但我现在想去第0行的第1列的数据(根据索引取数据),原以为这样CurDT.Rows[0][1],但是包错了,不行,应该怎么写.
CurDT.Rows[0].Cells[1],CurDT.Rows[0].Item[1],这样也错.
该怎么写????
我是通过Ajax从后台取到DataSet类型,然后转化成DataTable返回到Js中的,就是CurDT(类似DataTable类型),我很确定,这一点请放心.
而且我能通过CurDT.Rows.length看到其行数,也可通过CurDT.Rows[i]["ID"]查看每一行其中列为ID的数据,等等.
我现在觉的这样取不到CurDT.Rows[0][x]//x为列,我问问各位该怎么写,通过列的索引? ....

参考技术A JS无法获得网站服务器上保存在内存中的DataTable。但有另外一种途径,DataTable做为数据源输出到页面上之后比如Gridview,成为一个html的table。就可以使用JS来遍历这个table了。
具体怎么遍历看下边一段
var tableObj = document.getElementById("tableName");
var str = "";
for(var i=0;i<tableObj.rows.length;i++)

for(varj=0;j<tableObj.rows[i].cells.length;j++)

//str += tableObj.rows[i].cells[j].innerHTML+" ";

for(var z=0;z<tableObj.rows[i].cells[j].children.length;z++)

var text = tableObj.rows[i].cells[j].children[z];//取得text object
str += text.value;


str+=""n";

alert(str);
如果放到HTML是一个table的话,tableObj.rows[i].cells[j].innerText你这样试下CurDT.Rows[0][x]不是HTML的方式本回答被提问者采纳

更改绑定到 DataGridView 的 DataTable 中的列顺序不会反映在视图中

【中文标题】更改绑定到 DataGridView 的 DataTable 中的列顺序不会反映在视图中【英文标题】:Changing column order in DataTable bound to DataGridView does not reflect in the view 【发布时间】:2010-10-04 16:49:05 【问题描述】:

当应用程序运行时,DataGridView 绑定到DataTable。后来我以编程方式向DataTable 添加了更多列,它反映在基础数据中——即列序数应该是这样。但是,这并未反映在DataGridView 中。而是将列附加到最初生成的集合上。

这个例子演示,

public partial class Form1 : Form

    public Form1()
    
        InitializeComponent();
    

    public DataTable data = new DataTable();

    private void button1_Click(object sender, EventArgs e)
    

        this.dataGridView1.DataSource = data;
        for (int i = 0; i < 5; i++)
        
            this.data.Columns.Add(i.ToString());
        
    

    private void button2_Click(object sender, EventArgs e)
    
        DataColumn foo = new DataColumn();
        this.data.Columns.Add(foo);
        foo.SetOrdinal(0);
    

    private void button3_Click(object sender, EventArgs e)
    
        foreach (DataColumn tmpCol in this.data.Columns)
        
            Console.WriteLine("0 : 1", tmpCol.ColumnName, tmpCol.Ordinal);
        
    

按钮 1 生成列,按钮 2 添加列并将序号设置为 0,因此它应该位于网格中的第一个,按钮 3 显示列的序号并显示它们在 DataTable 中的位置.

【问题讨论】:

【参考方案1】:

这就是DataGridView 的工作原理;启用自动生成列后,额外的(未映射的)列将附加到末尾。您可以解绑并重新绑定以修复它;将 DataSource 设置为 null 并返回表:

this.dataGridView1.DataSource = null;
this.dataGridView1.Columns.Clear();
this.dataGridView1.DataSource = data;

【讨论】:

【参考方案2】:

我遇到了类似的问题,并使用 DataGridViewColumn.DisplayIndex 属性解决了它。

dgvData.Columns["COLUMN_NAME"].DisplayIndex = 0;  // will move your custom column to first position

【讨论】:

【参考方案3】:

不要忘记打开和关闭 AutoColumnCreate 以确保您是 DisplatIndex 的工作。

http://www.internetworkconsulting.net/content/datadridview-displayorder-not-working

【讨论】:

请修复您的链接

以上是关于js中这样获取DataTable中的行中的列数据??的主要内容,如果未能解决你的问题,请参考以下文章

R Shiny DataTable如何防止包含超链接的列中的行选择/取消选择

如何在javascript中使用从数据库返回的行中的数据

DataTable 从行中获取修改后的数据

从 Postgres 记录中的行中获取最大值并按多列分组

Shiny:合并 DT::datatable 中的单元格

jquery datatable 如何获取隐藏列的值