【问题标题】:How to load data in Handsontable using Ajax JQuery?如何使用 Ajax JQuery 在 Handsontable 中加载数据?
【发布时间】:2014-12-12 23:10:34
【问题描述】:

我正在使用下面的代码使用 Jquery 和 AJAX 从 ASP.Net 加载数据。但是当它加载 Handsontable 时,只会加载一个包含数组数据的单元格。

我尝试了不同的方法,但没有运气。请帮我从服务器加载数据。

function showGetResult() {

            $.ajax({
                type: "POST",
                url: "Input.aspx/LoadTable",
                contentType: "application/json; charset=utf-8",
                dataType: "json",

                success: function (res) {
                    alert(res); 

                    $("#exampleGrid").handsontable({
                        data: res,
                        rowHeaders: false,


                        stretchH: 'all',
                        minSpareRows: 0,
                        contextMenu: true
                    });

                },
                error: function (xhr, status) {
                    alert("An error occurred: " + status);
                }
            });
        }


<WebMethod()> <ScriptMethod()> _
    Public Shared Function LoadTable() As String
        Dim dsCosts As New DataSet
        dsCosts = DataAccess.LoadTables
        Dim serializer As New JavaScriptSerializer()
        Dim dt As New DataTable()
        '.... Get datatable 
        Dim data As String = GetJson(dt)
        Return data
    End Function

Private Shared Function GetJson(dt As DataTable) As String
        Dim serializer As New JavaScriptSerializer()
        Dim rows As New List(Of Dictionary(Of String, Object))()
        Dim row As Dictionary(Of String, Object) = Nothing
        Dim rowCount As Integer = 0

        For Each dr As DataRow In dt.Rows
            row = New Dictionary(Of String, Object)()
            For Each col As DataColumn In dt.Columns
                row.Add(col.ColumnName.Trim(), dr(col))
            Next
            '   row.Add("RowNumber", "R||" & rowCount)
            rows.Add(row)
            Dim temp As String = serializer.Serialize(rows)
            rowCount += 1
        Next
        Return serializer.Serialize(rows)
    End Function

【问题讨论】:

    标签: jquery .net handsontable


    【解决方案1】:

    经过努力,我得到了答案。希望对其他人有所帮助。

    你必须在绑定到 Handsontable 之前解析数据:

    $.ajax({
        type: "POST",
        url: "Test.aspx/LoadTable",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
    
        success: function (res) {
            part = res.d;
            let data = JSON.parse(part);
            $('#dataTable').handsontable('loadData', data);
        },
        error: function (xhr, status) {
            alert("An error occurred: " + status);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2016-03-22
      • 2016-03-31
      • 1970-01-01
      • 2016-09-19
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多