【问题标题】:How to bind C# DataTable to JQUERY DataTable?如何将 C# DataTable 绑定到 JQUERY DataTable?
【发布时间】:2019-06-08 04:08:19
【问题描述】:

我想将 Excel 工作表中的数据表绑定到 Jquery 数据表。我的目标是动态绑定数据表的所有列。 我不知道如何动态绑定列。

C# 和 Jquery 是代码库

在这段代码中,我从 excel 表中获取数据作为数据表

区域数据验证

    public DataTable DataValidation(string dataExchangeSelectedColum, string entityvalue,string filename)
    {
        UA patsUA = Session["PaTSUA"] as UA;
        //List<DataExchangeDefinitionViewModel> dataExchangeDefinitionListVM = _mapper.MapToDataExchangeDefinitionViewModelList(_dataExchangeBusiness.ValidateDataType(dataExchangeSelectedColum, entityvalue, filename, patsUA.DBConnectionString));
        DataTable dataTable = _dataExchangeBusiness.DataValidation(dataExchangeSelectedColum, entityvalue, filename, patsUA.DBConnectionString);
        return dataTable;
    }
    #endregion DataValidation

我想把上面的DataTable绑定到jquery Datatable中。 上述数据表可能会有所不同,即列在不同情况下会有所不同。所以列必须动态绑定。

【问题讨论】:

  • 将此数据表对象传递给 JQuery 并解析它然后绑定它。看这个链接live.datatables.net/fafuyeyu/55/editfunction getData(cb_func) { $.ajax({ url: "/ajax/objects.txt", //这里把你的ServerSide函数调用成功: cb_func });如果您将数据表更改为 JSON,那就太好了
  • @Ratheesh 让我试试这个
  • @Ratheesh 我找到了另一种方法

标签: c# jquery datatable


【解决方案1】:

我的控制器中的一个小改动并创建一个局部视图并将该局部视图加载到一个 div 中

这里是代码

控制器

#region DataValidation

    public ActionResult DataValidation(string dataExchangeSelectedColum, string entityvalue,string filename)
    {
        UA patsUA = Session["PaTSUA"] as UA;
        DataTable dataTable = null;
         dataTable = _dataExchangeBusiness.DataValidation(dataExchangeSelectedColum, entityvalue, filename, patsUA.DBConnectionString);


        return PartialView("_ExcelDataTable", dataTable);
    }
    #endregion DataValidation

创建了局部视图。来玩吧

@model System.Data.DataTable
@using System.Data;
@{
    IEnumerable<DataRow> _excelDataRowList = from dataRow in Model.AsEnumerable() select dataRow;
}
<div class="table-responsive tableScroll">
    <table id="data-table-basic" class="table table-striped">
        <thead>
            @foreach (DataColumn col in Model.Columns)
            {
                <tr>
                    @col.Caption.ToString()
                </tr>
            }
        </thead>
        <tbody>
            @foreach (DataColumn dtCol in Model.Columns)
            {
                <tr>
                    @foreach (DataRow row in _excelDataRowList)
                    {
                        <td>
                            @row[dtCol]
                        </td>
                    }

                </tr>
            }
        </tbody>
    </table>
</div>

我将此部分视图加载到我想显示表格的 div 中

【讨论】:

  • 好主意。但是您是否尝试过对 jquery 数据表进行服务器端处理?
  • @ChandanKumar,当然,我们可以使用服务器端处理。这里的优点是我的数据很小,它将在一个循环中创建表格标题和数据。
  • Dinesan : 任何提示如何使用 c# 数据表进行服务器端处理将更加明显
  • @ChandanKumar 我们可以使用JavaScriptSerializer将数据表转换为JSON
猜你喜欢
  • 2014-04-19
  • 2011-10-12
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多