如何在WebForms后端获取Telerik AJAX Spreadsheet的已编辑工作表
Telerik AJAX Spreadsheet后端获取编辑内容问题解决
问题核心:直接访问
RadSpreadsheet1.Sheets无法获取前端编辑后的内容,因为Telerik Spreadsheet的前端修改不会自动同步到服务器端控件属性,需手动触发数据回传并解析。解决步骤:
前端触发数据回传
在提交操作前,调用Spreadsheet的exportJSON()方法获取编辑后的内容,存入隐藏字段传递到后端。示例JS代码:function onSaveClick() { var spreadsheet = $find("<%= RadSpreadsheet1.ClientID %>"); var spreadsheetJson = spreadsheet.exportJSON(); document.getElementById("<%= hfSpreadsheetData.ClientID %>").value = spreadsheetJson; }ASPX页面添加隐藏字段与提交按钮:
<asp:HiddenField ID="hfSpreadsheetData" runat="server" /> <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" OnClientClick="onSaveClick();" />后端解析JSON内容
在后端按钮点击事件中,读取隐藏字段的JSON字符串,反序列化为工作表对象:protected void btnSave_Click(object sender, EventArgs e) { string spreadsheetJson = hfSpreadsheetData.Value; if (!string.IsNullOrEmpty(spreadsheetJson)) { var spreadsheet = Newtonsoft.Json.JsonConvert.DeserializeObject<Telerik.Web.Spreadsheet.Spreadsheet>(spreadsheetJson); List<Telerik.Web.Spreadsheet.Worksheet> lista = spreadsheet.Sheets.ToList(); // 此处可将lista数据写入数据库 } }关键注意事项
- 确保项目已引入Newtonsoft.Json库(可通过NuGet安装)
- 前端需通过
$find结合控件ClientID正确获取Spreadsheet客户端实例 - 若使用RadAjaxManager,需将隐藏字段与提交按钮纳入AJAX更新范围
内容的提问来源于stack exchange,提问作者Avasuilia
相关产品推荐
相关产品推荐

