我正在使用Visual Studio 2013将此代码移动到ASP.Net中。假设有用户保存到数据库中的购物车数据,并且他们希望在返回时再次看到它。所以我想填充购物车的表格数据网格。使用C#从代码隐藏准备数据,并使用以下代码将数组序列化为javascript。该数组已成功传递到javascript。
var arrList = new List<object>();
string x = string.Empty;
int i = table.Rows.Count;
foreach (DataRow row in table.Rows)
{
string name = row[0].ToString();
string quantity = row[1].ToString();
string price = row[2].ToString();
string remove = "X";
arrList.Add(new [] {name, quantity, price, remove});
}
return (new JavaScriptSerializer()).Serialize(arrList);
执行此操作时,以下函数loadData
使用此数组(例如data [])使用table.datagrid.loadData()
加载表。
function loadData(cartIndex, event) {
var $cart = $('.news:eq(' + cartIndex + ')');
alert(data[cartIndex]);
$cart.find('.cartcontent').datagrid('loadData', data[cartIndex]);
$cart.find('.total').text('Total: $' + data[cartIndex].total);
}
但是这个功能似乎无法加载表格。这里发生了什么?
答案 0 :(得分:0)
在一个方面,C#代码背后的服务器端代码不能制作与jquery / javascript中创建的数组结构相同的数组结构。这就是练习教给我的东西。我可能错了,因为这是我学习jquery / javascript数组实现的第一个也是最长的实验,将数组结构从C#序列化到客户端。
另一方面,上面的jquery函数没有任何问题。只要数据可用且数组在函数访问代码的基础上处于正确的结构中,它就会填充html表数据网格。
然而,完成所有这些操作的一个重要步骤是确保仅在DOM元素完全加载后才调用这些函数。至少在这种情况下这是一个隐藏的问题。