trigger-关于jqGrid 表单重新加载的问题

问题描述

关于jqGrid 表单重新加载的问题
最近在使用JqGrid 的时候 有一个问题部是很明白
    在表单第一次加载的时候要求只显示表头。不显示数据,所以我在第一次加载的时候没有给url;
    //加载页面时,同时加载表头
$(document).ready(function() {
    pageSetUp();
    jQuery("#jqgrid").jqGrid({
        url : ' ',
        datatype : "json",
        height : 'auto',
        colNames : [ 'id', '姓名', '年龄', '性别', '部门', '职位', '备注','密码','薪水'],

        colModel : [
        {name : 'id',index : 'id',hidden : true },
        {name : 'name',index : 'name',editable : true},
        {name : 'age',index : 'age',editable : true},
        {name : 'gender',index : 'gender',align : "right",editable : true},
        {name : 'dept',index : 'dept',align : "right",editable : true},
        {name : 'position',index : 'position',align : "right",editable : true},
        {name : 'remark',index : 'remark',sortable : false,editable : true},
        {name : 'possword',index:'possword',editable :true, hidden : true},
        {name : 'seraly',index:'seraly',editable :true, hidden : true},

        ],
        rowNum : 10,
        pager : '#pjqgrid',
        sortname : 'id',
        toolbarfilter : true,
        viewrecords : true,
        sortorder : "asc",
        jsonReader: {

     root: "rows",    // Json数据
    total: "total",   // 总页数
     page: "page",  // 当前页
    records: "records",// 总记录数
   repeatitems: false
   },

        editurl : "${TINY_CONTEXT_PATH}/ajax/dummy.pagelet",
        caption : "Zto",
        multiselect : true,
        autowidth : true,
    });

    然后在页面上点击查询所有数据时,要求把所有数据读取出来 。 所以我使用了 重新加载 .trigger('reloadGrid') 的方法。 

    jQuery("#jqgrid").jqGrid('setGridParam',{
           url : "list.do",
           datatype : 'json',
           //发送数据
           postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
                     "seraly":seraly,"position":position,"dept":dept,"remark":remark},
           page : 1          

        }).trigger('reloadGrid');//重新载入
    })

    可是网页报错
    Uncaught TypeError: Illegal invocation
    纠结了半天后,发现要在上面加上一段
        var name=$("#name").val();
        var age=$("#age").val();
        var gender=$("#gender").val();
        var posswrod=$("#posswrod").val();
        var seraly=$("#seraly").val();
        var position=$("#position").val();
        var dept=$("#dept").val();
        var remark=$("#remark").val();

            数据就能正常显示了

            全部代码

            $(function(){
    $("#test").click(function(){
         //获取内容
        var name=$("#name").val();
        var age=$("#age").val();
        var gender=$("#gender").val();
        var posswrod=$("#posswrod").val();
        var seraly=$("#seraly").val();
        var position=$("#position").val();
        var dept=$("#dept").val();
        var remark=$("#remark").val();

        jQuery("#jqgrid").jqGrid('setGridParam',{
           url : "list.do",
           datatype : 'json',
           //发送数据
           postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
                     "seraly":seraly,"position":position,"dept":dept,"remark":remark},
           page : 1          

        }).trigger('reloadGrid');//重新载入

    })
});

最后提一个问题就是:为什么要在点击后,获取
var name=$("#name").val(); 这样的一个值。
为什么不加上就会报错了?

解决方案

肯定要加变量的申明啊,name,age,gender。。等等你不申明那不是变量不存在,你直接使用当然报错 了。除非你window作用域下也存在这些变量的申明

postData : {"name":name ,"age":age,"gender":gender,"posswrod":posswrod,
"seraly":seraly,"position":position,"dept":dept,"remark":remark},

时间: 2024-10-21 22:03:01

trigger-关于jqGrid 表单重新加载的问题的相关文章

怎么样才可以让Form表单在加载的时候只自动提交一次?

方案一:  使用body标签的onload方法提交form表单即可.    具体如下例: <body onload="form.submit();"> <form name="form" action="url" method="post"> <input type="text" id="name" value="zhang"/>

RoR + ExtJS 如何实现表单数据加载和提交?

问题描述 使用RoR + ExtJS.ExtJS生成一个FormPanel,一个文本框和提交按钮,文本框数据自动从RoR的controller加载,提交表单到controller的一个action.请问如何实现?另外,是否用到了json?RoR如何返回json给ExtJS? 问题补充:lizhi92574 写道 解决方案 var form= new Ext.form.FormPanel({reader : new Ext.data.JsonReader({}) //只定数据解析器 对应表单元素n

ExtJs之Ajax模式的表单数据加载

简单: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 <!DOCTYPE htm

jquery- Jquery表单里colModel怎么显示男女

问题描述 Jquery表单里colModel怎么显示男女 {name:'sex', index:'sex', width:'70', align:'center',editoptions:{value:'1:男;2:女'}}, 这样不能显示 解决方案 注意jqGrid放grid.locale-cn.js的后面.否则会报错. jQuery("#editgrid").jqGrid({ datatype: "local", height: 450, colNames:['

RX系列四 | RxAndroid | 加载图片 | 提交表单

RX系列四 | RxAndroid | 加载图片 | 提交表单 说实话,学RxJava就是为了我们在Android中运用的更加顺手一点,也就是RxAndroid,我们还是先一步步来,学会怎么去用的比较好,之前的三篇算是铺垫,让你有一点认识,那Rx在Android中有什么好处呢?我们先模拟一些原始功能和他对比下 一.加载图片 很多人说Rx出来之后,是编程思想的一种进阶,实际上我学习了这种思想之后,确实是觉得有了很大的改变,不过,需要一点学习成本再加上,需要对原先的思想有些改观,使得我依旧有点不适应

通过代理打开表单对不?

问题描述 SubInitializeDimsessionAsNewNotesSessionDimviewAsNotesViewDimdocAsNotesDocumentDimdbAsNotesDatabase'DimitemAsNotesItemSetdb=session.currentdatabaseSetview=db.getview("$Inbox")'视图名称'MessageBox("1")Setdoc=view.getfirstdocumentSetite

javascript判断ie浏览器6/7版本加载不同样式表的实现代码_javascript技巧

关键点:1.对浏览器版本的判断:2.修改样式表路径 其中第二点也常用在实时修改网页模板.论坛风格的场合,实际上就是修改样式表路径来加载不同的样式表. 代码: 复制代码 代码如下: <script type="text/javascript"> var browser=navigator.appName var b_version=navigator.appVersion var version=b_version.split(";"); try{ //代

EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

原文:EF如何操作内存中的数据以及加载相关联表的数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过ObjectContext来操作数据库的,一看是Object打头的,自然相当庞大,方法也比较多.到了经典的4.1版本,EF小组推出了一些更简单好用的API,就是DbContext,它包括更常用的方法.看看EF小组是怎么说

JavaScript动态加载样式表的方法_javascript技巧

本文实例讲述了JavaScript动态加载样式表的方法.分享给大家供大家参考.具体如下: 如果需要更换皮肤,我们可以通过JS代码动态加载皮肤的样式表,下面的代码就可以做到,非常简单,你只需要把这段代码做成函数动态调用即可. var el = document.createElement('link'); el.rel = 'stylesheet'; el.type = 'text/css'; el.href = 'http://www.jb51.net/...' + 'styles.css';