【问题标题】:Handsontable Grid - loading and saving data from aspx web pageHandsontable Grid - 从 aspx 网页加载和保存数据
【发布时间】:2013-03-18 21:07:59
【问题描述】:

是否可以使用 aspx 页面后面的 c# 代码将数据加载到网格或从网格中保存数据,还是必须使用 Web 服务(或 PHP)?我尝试过使用 JSON.Net 映射一个非常简单的结构来编码后端结构,但失败了

是否可以使用 JQuery(我认为是 ajax GET)来调用后端代码文件(.aspx.cs)中的方法?我曾尝试使用该论坛上各种帖子中的代码,但后端代码(c#)的信息很少,而且似乎都指的是 Web 服务。任何帮助/建议将不胜感激。

这里是相关的 JavaScript 代码:

var handsontable = $container.data('handsontable');
$(document).find('button[name=load]').click(function () {
    $.ajax({
        url: "Default.aspx/getJSData",
        dataType: 'json',
        type: 'GET',
        //contentType: "application/json; charset=utf-8",
        success: function (res) {
            handsontable.loadData(res.data);
            $console.text('Data loaded');
        },
        error: function () {
            $console.text('Load error');
        }
    });

});

【问题讨论】:

    标签: c# .net handsontable


    【解决方案1】:

    您仍然需要执行 Ajax 调用,但不需要执行 Web 服务(您可以)。您希望向 Ajax 调用公开的函数将 [WebMethod] 属性打开,并使用将 EnablePageMethods 属性设置为 true 的脚本管理器。

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
    </asp:ScriptManager>
    

    访问方法:

    [WebMethod]
    public static void SomeFunction(string message, string name)
    {
    
    }
    

    使用 jQuery 进行 Ajax 调用

    (function($) {
            $.ajax({
                type: "POST",
                url: "test.aspx/SomeFunction",
                data: "{message:'Hello World', name: 'Bob'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert('success');
                }
            });
        });
    

    参考:Using the WebMethod Attribute

    【讨论】:

    • 非常感谢您的帮助 - 这让我有很多工作要做。目前VS无法识别[Webmethod]属性,所以我正在做一些研究......
    • 谢谢@Stephen,这看起来不错,但我无法让它工作。我需要将 using System.Web.Services; 添加到代码隐藏文件中,以便 VS 识别 [Webmethod] 属性。您为 SomeFunction() 方法显示的参数对我来说看起来不正确 - 我原以为我们传递了一个需要反序列化的序列化字符串。问题是,我无法触发代码隐藏功能 - 我几乎尝试了所有方法。我没有收到任何错误,什么都没有。
    • ASP.Net 负责反序列化。它要做的是将查询字符串参数与函数方法调用相匹配,因此您需要确保它们匹配。或者我相信您可以将参数列表留空并查看请求对象以获取值(尚未测试最后一点)。
    • 太好了,再次感谢@Stephen,现在正在向服务器发布数据。现在我一直在努力(几个小时)从服务器加载数据以工作 - 请你协助服务器端方法的结构 - 我的 javascript 代码将如下所示:
    猜你喜欢
    • 2012-11-03
    • 2013-03-24
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多