要实现的功能如下:当选择框选择数据源由原始数据切换到组合后数据时,界面左侧jqgrid表格随之改变。效果如下:

实现代码:

界面顶部select选择框:要点是用localStory将选择框的选择信息记录在缓存中,选择完成后重新加载页面,将选择框的选中项设置为记录到缓存中的值。

<section class="content-header">
<div class="row">
<H5 for="SelectBatchID" class="col-sm-1">选择批次</H5> <div class="col-md-3">
<select class="form-control" name="SelectBatchID" id="SelectBatchID" onchange="selet_curent_batch()">
</select>
</div> <H5 for="SelectData" class="col-sm-1">选择数据源</H5> <div class="col-md-3">
<select class="form-control" name="SelectData" id="SelectData" onchange="selet_data()">
<option value="original">原始数据</option>
<option value="combination">组合后数据</option>
</select>
</div>
</div> <Script>
if(localStorage.getItem("selected")=="original"){
$("#SelectData").val("original")
}
if(localStorage.getItem("selected")=="combination") {
$("#SelectData").val("combination");
}
var list = document.getElementById("SelectBatchID");
var post = function (url, form, callback) {
// XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
xhr.open("post", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
var res = eval ("(" + xhr.responseText + ")");
callback(res);
}
};
xhr.send(form);
};
var form = new FormData();
post("/editor/getbatches", form, function (res) {
for(var v in res.batches) {
list.options.add(new Option(res.batches[v], v))
}
for (var i=0; i<list.options.length; i++) {
if (list.options[i].value == res.selected) {
list.options[i].selected = true;
}
}
});
var selet_curent_batch = function () {
var cur_batch = list.options[list.selectedIndex].value;
var form = new FormData();
form.append('cur_batch',cur_batch);
post("/batch/current", form, function (res) {
document.location.reload();
});
};
var selet_data =function () {
//选择数据源后刷新table
var data = $('#SelectData').val();
localStorage.setItem("selected",data.toString());
location.reload();
}
</Script>
</section>

生成表格的js:

<script>
//table
$(function(){
//页面加载完成之后执行
pageInit();
});
function pageInit(){
//创建jqGrid组件
var url;
if ($("#SelectData").val()=="original"){
url = "/getOriginalData"
}
if ($("#SelectData").val()=="combination") {
url = "/getCombinationData"
}
jQuery("#list2").jqGrid(
{
loadonce:true,
url : url,//组件创建完成之后请求数据的url
datatype : "json",//请求数据返回的类型。可选json,xml,txt
colNames : ['钻孔名称'],//jqGrid的列显示名字
colModel : [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式.....
// {name : '_id',index : 'id', hidden:true},
{name : 'no',index : 'no',width : 180},
],
rowNum : -1,//一页显示多少条
// rowList : [ 10, 20, 50 ],//可供用户选择一页显示多少条
// pager : '#pager2',//表格页脚的占位符(一般是div)的id
sortname : 'id',//初始化的时候排序的字段
sortorder : "desc",//排序方式,可选desc,asc
mtype : "post",//向后台请求数据的ajax的类型。可选post,get
viewrecords : true,
caption : "钻孔列表",//表格的标题名字
multiselect: true,//复选框
// pagerpos: 'left',
recordtext: "",
height:225,
});
/*创建jqGrid的操作按钮容器*/
/*可以控制界面上增删改查的按钮是否显示*/
// jQuery("#list2").jqGrid('navGrid', '#pager2', {edit : false,add : false,del : false});
}
</script>

这样调整过后就可以实现我们想要的功能了!

jqgrid 实现表格随select框内容改变而刷新的更多相关文章

  1. 捕获input 文本框内容改变的事件(onchange,onblur,onPropertyChange比较)

    input 文本框内容改变,可以使用onchange或者onblur来判断,但onchange是在文本内容改变,然后失去焦点的时发生,onblur是在失去焦点时发生,不会自己去判断. 如: <i ...

  2. JS事件 文本框内容改变事件(onchange)通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

    文本框内容改变事件(onchange) 通过改变文本框的内容来触发onchange事件,同时执行被调用的程序. 如下代码,当用户将文本框内的文字改变后,弹出对话框"您改变了文本内容!&quo ...

  3. jquery文本框内容改变事件

    /** * 内容改变时并不会触发事件,但是在失去焦点的时候会触发. */ $("#inputid").change(function(){ console.log($(this). ...

  4. select框内容的编辑、修改、添加、删除操作

    // 添加 function col_add() { var selObj = $("#mySelect"); var value="value"; var t ...

  5. JS、JQury - 文本框内容改变事件

    例子: 效果: 前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ...

  6. JS来推断文本框内容改变事件

       oninput,onpropertychange,onchange的使用方法 onchange触发事件必须满足两个条件: a)当前对象属性改变,而且是由键盘或鼠标事件激发的(脚本触发无效) b) ...

  7. 动态生成select框内容

    获取动态数据,显示在select选项中,当前select在jsp页面中 <select > <option>这里放选中或者当前的数据</option> <%f ...

  8. JS和vue文本框输入改变p标签的内容测试

    文本框输入,p标签的内容自动变成文本框的内容,如下是三种方法的测试: 方法1:JS里的onchange,当文本框内容改变事件,该事件里写的方法是,获取p标签本身,然后获取文本框的值,赋值给变量,最后给 ...

  9. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

随机推荐

  1. Polya定理应用实例

    关于Polya原理的应用经典实例: 问题:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到只算作一种.问有多少种染色状态. 解:先将棋子表上号: 1 6   2 5   3 4 那么把所有通过旋转 ...

  2. Linux 驱动框架---input子系统

    input 子系统也是作为内核的一个字符设备模块存在的,所以他也是字符设备自然也会有字符设备的文件接口.input子系统的注册过程主要分为两步,先注册了一个input class然后再注册一个字符设备 ...

  3. 硬盘测试工具fio用法总结

    一  fio介绍 linux下的一种常用的磁盘测试工具,支持裸盘和文件形式进行测试   二  硬盘测试常用名词 延迟:io的发起到返回写入成功的时间成为延迟,fio中延迟分为lat,slat,clat ...

  4. webpack remove console.log

    webpack remove console.log https://stackoverflow.com/questions/41040266/remove-console-logs-with-web ...

  5. vue component :is

    vue component :is Vue <component> element https://vuejs.org/v2/guide/components.html#Dynamic-C ...

  6. web development all in one

    web development all in one https://javascript.xgqfrms.xyz/web-development-all-in-one.html refs https ...

  7. PEP 8 & Style Guide

    PEP 8 & Style Guide Style Guide for Python Code https://www.python.org/dev/peps/pep-0008/ PEP Py ...

  8. js in depth & prototype & __proto__

    js in depth & prototype & proto 实例的 proto 与 父类的 prototype,同时指向 父类的构造函数: https://hackernoon.c ...

  9. BGV上线两天价格超过880美金,下一个YFI已到来!

    BGV自上线以来就备受币圈关注,众多投资者纷纷表示看好BGV.BGV也不负众望,在上线交易所第二天,价格就迎来了暴涨,最高价格为888.88美金,超越了当前以太坊的价值.而这也迎来了币圈众多投资者的一 ...

  10. ASP.NET Core中如何对不同类型的用户进行区别限流

    老板提出了一个新需求,从某某天起,免费用户每天只能查询100次,收费用户100W次. 这是一个限流问题,聪明的你也一定想到了如何去做:记录用户每一天的查询次数,然后根据当前用户的类型使用不同的数字做比 ...