通过jquery将网格视图数据发送到另一个页面

Send gridview data to another page through jquery

本文关键字:另一个 数据 jquery 网格 视图 通过      更新时间:2023-09-26

>我有一个页面,当页面第一次加载时,我正在从服务器绑定grdiview,但随后我必须做客户端工作,通过从客户端添加/删除行来过滤网格的数据。这是代码

function onSuccess(response) {
                // debugger;
                var xmlDoc = $.parseXML(response.d);
                var xml = $(xmlDoc);
                var customers = xml.find("ListOfComplaints");
                var appendline = '<tr align="center" style="color:#333333;background-color:#F7F6F3;">' +
                    '             <td align="center"></td>' +
                    '             <td align="center">7</td>' +
                    '             <td align="center">Feb 29, 2016</td>' +
                    '             <td align="center">1000</td>' +
                    '             <td align="center">CompanyName</td>' +
                    '             <td align="center">high discharge pressure</td>' +
                    '             <td align="center">high discharge pressure</td>' +
                    '             </tr>';


                if (customers.length > 0) {  //If Data Found
                    $('[id*=grdlead]').show();
                    $('#tblmessage').hide();
                    $("[id*=grdlead] tbody tr").has('td').remove(); //remove all data rows
                    $("[id*=grdlead] tbody").append(appendline); //append default row

                } else {
                    $('[id*=grdlead]').hide();
                    $('#tblmessage').show();
                }
                var row = $("[id*=grdlead] tr:last-child").clone(true);
                $("[id*=grdlead] tr").not($("[id*=grdlead] tr:first-child")).remove();
                $.each(customers, function () {
                    //  debugger;
                    var customer = $(this);
                    //$("td a:first", row).attr('href', 'ComplaintDetails.aspx?id=' + $(this).find("Id").text() + '&hideall=true&cid=' + $(this).find("ProjectId").text());
                    $("td", row).eq(0).html($(this).find("CustomerName").text());
                    $("td", row).eq(1).html($(this).find("EquipModelNo").text());
                    $("td", row).eq(2).html($(this).find("ProjectNo").text());
                    $("td", row).eq(3).html($(this).find("ContractType").text());
                    $("td", row).eq(4).html($(this).find("NoOfDays").text());
                    $("td", row).eq(5).html($(this).find("ExpenAmount").text());
                    $("td", row).eq(6).html($(this).find("ExpenDateFormatted").text());
                    $("[id*=grdlead]").append(row);
                    row = $("[id*=grdlead] tr:last-child").clone(true);
                });
            }

所以上面的代码是添加/删除网格行客户端。现在我想将网格数据作为数据表传递到另一个页面。

所以我在服务器端这样做,我的意思是单击按钮将网格视图数据转换为数据库,网格显示所有数据。

作为第一次从服务器端绑定网格..在视图状态中,它拥有所有数据,但之后我在客户端进行操作。

所以当我检查服务器上的网格视图行时,它显示了第一次加载的所有行。

现在如何解决这个问题?

一般来说,不能向客户端呈现的 GridView 添加行。

一方面,这是一个安全问题,默认情况下,aspx 页面将设置 @Page 指令EnableEventValidation="true" ValidateRequest="true"以"降低未经授权的回发请求和回调的风险"

网格视图不打算以这种方式更新。

网格视图是一个数据绑定控件。更新 GridView 的唯一正确方法是对后备数据存储进行更改,然后重新绑定 GridView。

这意味着您必须使用 GridView 的内部编辑功能,这通常意味着一次添加一行数据。

或者,您必须实现一个基于 jquery/js 且与 GridView 完全分开的客户端数据输入系统。 将该数据发布回服务器,更新 GridView 数据存储并重新绑定 GridView。