首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么只调用一次jqgrid?

为什么只调用一次jqgrid?
EN

Stack Overflow用户
提问于 2015-09-10 17:20:37
回答 1查看 123关注 0票数 0

我有一个javascript函数,在其中我收到一个下拉的值。职能如下:

代码语言:javascript
代码运行次数:0
运行
复制
function SetTemplateId(id) // this method is called on drop down change event
{
      templateId=id;  // template id is global variable

      showjqgrid();  //this method show the Jqgrid
}  

ShowJqgrid方法如下

代码语言:javascript
代码运行次数:0
运行
复制
function showjqgrid()
{

$("#grid").jqGrid({
    datatype: 'json',
    url: '/Home/DynamicGridData?id='+templateId,

........
}

jqgrid很好,但问题是,当第一次调用"setTemplateid“函数时,它的工作状态很好,数据显示正确;当我第一次更改下拉值时,调用"setTemplateId”函数(我通过警告()检查),同时也调用了显示网格,但没有调用URL。如果我在"setTemplateId“函数中销毁jqgrid,那么jqgrid就不会显示。如果我重新加载jqgrid,那么数据也只是第一次显示。我第一次见到它。只调用第一次动作方法。从那以后就不叫了。有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 18:31:43

原因很简单。函数showjqgrid在相对复杂的div和表结构中转换空表<table id="grid"></table>。在此之后,jqGrid向url提出请求。

因此,您有两个主要选项(备选方案)来解决这个问题:

  • GridUnload方法的调用包含为showjqgrid的第一行。它将破坏以前创建的div和表的复杂结构,并将其简化为一个空的<table>
  • 您可以创建网格一次。在下一次,您应该使用url更新setGridParam参数,然后触发reloadGrid,这将更新网格的内容,保持外部部分不变。

此外,我建议您阅读the old answer,它演示了如何使用jqGrid的postData参数,其中将属性定义为函数。我假设,您使用的templateId作为urlid参数的值,将在下拉更改事件中以某种方式进行计算。因此,您可以考虑在postData.id中定义的函数中执行此操作。在这种情况下,您可以使用url: '/Home/DynamicGridData?id='+templateId部分将由jqGrid附加。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32508075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档