fix(browser): accept nested values in row callbacks

This commit is contained in:
SugarChes
2026-07-30 15:08:01 +08:00
parent 5e6449cf1f
commit cc9bd1f0d1
@@ -7,8 +7,6 @@ using Lskj.Control.Model;
using Lskj.Data; using Lskj.Data;
using Lskj.Model; using Lskj.Model;
using Lskj.Util; using Lskj.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
@@ -108,7 +106,7 @@ namespace Lskj.Control.BrowserSetting
menu.Model = new DynamicModel(new string[] { MenuName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", mMenuCode }); menu.Model = new DynamicModel(new string[] { MenuName, ERPInfo.Instance.UserId, ERPInfo.Instance.UserName, "1", mMenuCode });
//DataRow[] dataRows = JsonHandler.ParseJsonArrayToDataRows(arrayItem); //DataRow[] dataRows = JsonHandler.ParseJsonArrayToDataRows(arrayItem);
//JArray jArray = (JArray)JsonConvert.DeserializeObject(arrayItem); //JArray jArray = (JArray)JsonConvert.DeserializeObject(arrayItem);
DataTable dataTable = JsonConvert.DeserializeObject<DataTable>(arrayItem); DataTable dataTable = JsonUtil.ToDataTablePreservingComplexValues(arrayItem);
if (dataTable != null && dataTable.Rows.Count > 0) if (dataTable != null && dataTable.Rows.Count > 0)
{ {
menu.ExecRightMenu(menuModel, dataTable.Select()); menu.ExecRightMenu(menuModel, dataTable.Select());
@@ -323,10 +321,7 @@ namespace Lskj.Control.BrowserSetting
{ {
if (!string.IsNullOrWhiteSpace(rowdata) && StaticControl.RightMenuGridView != null) if (!string.IsNullOrWhiteSpace(rowdata) && StaticControl.RightMenuGridView != null)
{ {
JObject rowObject = JsonConvert.DeserializeObject<JObject>(rowdata); DataTable dataTable = JsonUtil.ToDataTablePreservingComplexValues(rowdata);
JArray jArray = new JArray();
jArray.Add(rowObject);
DataTable dataTable = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(jArray));
DataTable gridTable = (StaticControl.RightMenuGridView.GridControl.DataSource as DataTable).TrimDeleteRows(); DataTable gridTable = (StaticControl.RightMenuGridView.GridControl.DataSource as DataTable).TrimDeleteRows();