每次按一次按钮都会加载jqgrid数据

时间:2014-05-08 10:55:50

标签: jquery jqgrid jqgrid-asp.net jqgrid-php

我使用下面的代码在按钮点击后加载jqgrid数据。这是我第一次点击按钮时的工作原理。当我第二次点击按钮意味着它没有加载。请帮我解决这个问题。

 <script type="text/javascript">

        $(document).ready
        (
            function () {
                $('#btnContinue').live('click', function () {
                    var parent =  $('#hf_val').val();   
                        bindCustomers(parent);
                });
            }
        );

        var bindCustomers = function () {
            alert('in');
            // Set up the jquery grid
            $("#jqTable").jqGrid
                (
                    {
                        // Ajax related configurations
                        url: 'LoadCustomerData.ashx?TypeId='+ parent,
                        datatype: "json",
                        mtype: "POST",

                        // Specify the column names
                        colNames: ["CustomerId", "FirstName", "LastName"],

                        // Configure the columns
                        colModel: [
                                { name: "CustomerId", index: "CustomerId", width: 40, align: "left" },
                                { name: "FirstName", index: "FirstName", width: 100, align: "left" },
                                { name: "LastName", index: "LastName", width: 200, align: "left"}],

                        // Grid total width and height
                        width: 550,
                        height: 200,

                        // Paging
                        toppager: true,
                        pager: $("#jqTablePager"),
                        rowNum: 5,
                        rowList: [5, 10, 20],
                        viewrecords: true, // Specify if "total number of records" is displayed

                        // Default sorting
                        //sortname: "Id",
                        //sortorder: "asc",

                        // Grid caption
                        caption: "A Basic jqGrid - Read Only"
                    }
                ).navGrid("#jqTablePager",
                    { refresh: true, add: false, edit: false, del: false },
                        {}, // settings for edit
                        {}, // settings for add
                        {}, // settings for delete
                        {sopt: ["cn"]} // Search options. Some options can be set on column level
                );
            alert('loading finish');
        }
    </script>

2 个答案:

答案 0 :(得分:0)

好的,我知道你的问题在哪里。这样,您每次都尝试重新创建整个网格,而不是仅重新加载数据。

您通过网址进行操作(我建议将POST数据建议到网址,更多的注入攻击机会)

不是每次重新创建它(或尝试)只需点击它来调用它:

$("#jqTable").setGridParam({'postData': data});

&#34;数据&#34;就像&#39; TypeId =&#39; +父母

答案 1 :(得分:0)

在函数外部创建网格,在onclick内部重新加载网格。你不必每次点击都创建整个网格。可以将变量父项添加到postdata。