Handsontable Grid - 从 aspx 网页加载和保存数据
Posted
技术标签:
【中文标题】Handsontable Grid - 从 aspx 网页加载和保存数据【英文标题】:Handsontable Grid - loading and saving data from aspx web page 【发布时间】: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');
);
);
【问题讨论】:
【参考方案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 代码将如下所示:以上是关于Handsontable Grid - 从 aspx 网页加载和保存数据的主要内容,如果未能解决你的问题,请参考以下文章
Handsontable propToCol 返回属性而不是列号
Handsontable 相对于下一列的下一个单元格更改单元格颜色