我使用下面的代码在按钮点击后加载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>
答案 0 :(得分:0)
好的,我知道你的问题在哪里。这样,您每次都尝试重新创建整个网格,而不是仅重新加载数据。
您通过网址进行操作(我建议将POST数据建议到网址,更多的注入攻击机会)
不是每次重新创建它(或尝试)只需点击它来调用它:
$("#jqTable").setGridParam({'postData': data});
&#34;数据&#34;就像&#39; TypeId =&#39; +父母
答案 1 :(得分:0)
在函数外部创建网格,在onclick内部重新加载网格。你不必每次点击都创建整个网格。可以将变量父项添加到postdata。