将jsFiddle迁移到asp.net VS IDE的问题:表datagrid没有加载

时间:2015-05-27 17:16:19

标签: javascript jquery asp.net c#-4.0 jeasyui

jsFiddle

我正在使用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);
}

但是这个功能似乎无法加载表格。这里发生了什么?

1 个答案:

答案 0 :(得分:0)

在一个方面,C#代码背后的服务器端代码不能制作与jquery / javascript中创建的数组结构相同的数组结构。这就是练习教给我的东西。我可能错了,因为这是我学习jquery / javascript数组实现的第一个也是最长的实验,将数组结构从C#序列化到客户端。

另一方面,上面的jquery函数没有任何问题。只要数据可用且数组在函数访问代码的基础上处于正确的结构中,它就会填充html表数据网格。

然而,完成所有这些操作的一个重要步骤是确保仅在DOM元素完全加载后才调用这些函数。至少在这种情况下这是一个隐藏的问题。