Ext.Ajax.request批量提交表单
介绍一下批量提交grid中数据的问题
js文件中的提交方法如下:
listeners: {
click: function btnClick(button) {
var win = button.up('window');
var form = win.down("form");
var loadMarsk = new Ext.LoadMask(win, {//元素、DOM节点或id, {
msg: '正在执行,请稍候...',
removeMask: true// 完成后移除
});
loadMarsk.show();
var grid = form.down("grid");
var store = grid.getStore();
//
//var store = win.down("grid").getStore();
var m = store.getRange(0, store.getTotalCount()); //store.getModifiedRecords().slice(0);
var jsonArray = [];
Ext.each(m, function (item) {
jsonArray.push(item.data);
});
Ext.Ajax.request({
method: 'POST',
url: '/FoolProof/Savelist',
success: function (response) {
var o = Ext.decode(response.responseText.toString());
var center_store = Ext.ComponentQuery.query("Ali_FoolProofCenterList")[0].getStore();
center_store.loadPage(1);
console.log(o);
Ext.Msg.alert('提示', o.data.message);
loadMarsk.hide();
},
failure: function () {
Ext.Msg.alert("错误", "与后台联系的时候出了问题。");
loadMarsk.hide();
},
params: 'data=' + encodeURIComponent(Ext.encode(jsonArray))
});
win.close();
}
}
------------------------------------
controller中的方法如下:
public JsonResult Savelist(string data)
{
return this.ReturnAjaxResultJson(() =>
{
try
{
string list = HttpUtility.UrlDecode(data);
if (list.StartsWith("[") == false)
{
list = "[" + list;
}
if (list.EndsWith("]") == false)
{
list = list + "]";
}
List<FoolProofCenter> instanceList = JsonConvert.DeserializeObject<List<FoolProofCenter>>(list);
int result = nService.Savelist(instanceList, CurrentUser.USER_ID);
if (result > 0)
{
return SingleReturnObject.BuildSingleInfo(true, "保存成功!", null);
}
else
{
return SingleReturnObject.BuildSingleInfo(true, "保存失败!", null);
}
}
catch (Exception e)
{
return SingleReturnObject.BuildSingleInfo(false, e.Message, null);
}
});
}
--------------向grid中插入l临时数据--------------------------------
---------------查找记录是否存在,不存在插入store中-------------------
{
text: "Add",
action: "Add",
listeners: {
click: function (btn) {
var form = btn.up("form");
if (!form.isValid()) {
return;
}
var obj = form.getValues();
var fct_name = form.down("combo[name=FactoryCode]").getRawValue();
var line_name = form.down("combo[name=Line]").getRawValue();
var grid = form.down("grid");
var myStore = grid.getStore();
var pk_value = obj.FactoryCode + obj.Line + obj.GBMCode + obj.ApplyArticleCode + obj.ApplyLocation;
var existRecord = myStore.findRecord("pk", pk_value, 0, false, false, true);
//console.log(existRecord);
if (existRecord == null) {
var s = Ext.String.format(
'([{"FCT_CODE":"{0}", "LINE_CODE":"{1}", "GBM_CODE":"{2}", "FPRF_APLY_ART_CODE":"{3}", "APLY_LOC_CODE":"{4}", "RMK":"{5}","DEL_YN":"{6}", "USE_YN":"{7}", "FCT_NM":"{8}", "LINE_NM":"{9}","pk":"{10}"}])'
, obj.FactoryCode, obj.Line, obj.GBMCode, obj.ApplyArticleCode, obj.ApplyLocation, obj.Remark, "N", obj.ResultYN, fct_name, line_name,pk_value);
//console.log(s);
var record = eval(s);
myStore.insert(0, record);
myStore.sort();
grid.getView().refresh();
}
}
}
},
-------------grid中定义store---------------------------
xtype: "grid",
store: Ext.create('Ext.data.Store', {
fields: ["FCT_CODE", "LINE_CODE", "GBM_CODE", "FPRF_APLY_ART_CODE", "APLY_LOC_CODE", "RMK",
"DEL_YN", "USE_YN", "FCT_NM", "LINE_NM", "pk"],
data: {
'items': [
//{ 'FileName': '', "FilePath": "", "Result": "" }
]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
}),
--------------------------------------------------------------
store: Ext.data.StoreManager.lookup('employeeStore'),
----------------------------------------------------------
Ext.Ajax.request批量提交表单的更多相关文章
- Ajax 跨域提交表单
跨域提交表单,前端ajax不用做任何修改, 只需要在后端调用的方法里面添加一行代码即可. .NET 版 HttpContext.Response.AddHeader("Access-Cont ...
- Ajax无刷新提交表单和显示
ajax无刷新表单提交: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- 不使用ajax,无刷新提交表单
<form action="form_action.asp" method="get" onsubmit"check_form()" ...
- TP 框架 ajax[利用异步提交表单]
//[] $(function () { $("#send-btn" ).click(function (){ //接受表单的值 var username=$('input[nam ...
- ajax.BeginForm异步提交表单并显示更新数据
view代码: <!--基本信息模块--> 2 <div class="profile_box" id="basicInfo"> 3 & ...
- 关于ajax直接提交表单jQuery .validator验证不起作用问题
之前用$.ajax(function(){});直接提交表单,而表单验证不通过也能提交. $(document).ready(function(){ $.ajax({ url:" ...
- 不使用Ajax,如何实现表单提交不刷新页面
不使用Ajax,如何实现表单提交不刷新页面? 目前,我想到的是使用<iframe>,如果有其他的方式,后续再补. 举个栗子: 在表单上传文件的时候必须设置enctype="mul ...
- Yii框架用ajax提交表单时候报错Bad Request (#400): Unable to verify your data submission.
提交表单报400错误,提示 "您提交的数据无法验证"原来是csrf验证的问题,因为表单是自己写的,在Yii框架中,为了防止csrf攻击,对post的表单数据封装了CSRF令牌验证. ...
- lavarel框架中如何使用ajax提交表单
开门见山,因为laravel以post形式提交数据时候需要加{{csrf_field()}}防止跨站攻击,所以当你用ajax提交表单时候自然也要加 在网上看了很多的解决方式,我是用下面这种方法解决的: ...
随机推荐
- The 2018 ACM-ICPC Chinese Collegiate Programming Contest Fight Against Monsters
#include <iostream> #include <cstdio> #include <cstring> #include <string> # ...
- c++,友元类和友元函数
都是声明时友元的东西可以访问自己类的私有和保护成员 类的友元 友元是C++提供的一种破坏数据封装和数据隐藏的机制. 通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息 ...
- Linux磁盘简介
为一台服务器添加三块磁盘的体系结构情况 Linux系统中用free -l 查看磁盘的状况 说明: 1)buffers为写入缓冲区,sync将缓冲区数据写入磁盘,cache为读出缓存. 2)cac ...
- 全网最详细python中socket套接字send与sendall的区别
将数据发送到套接字. 套接字必须连接到远程套接字. 返回发送的字节数. 应用程序负责检查是否已发送所有数据; 如果仅传输了一些数据, 则应用程序需要尝试传递剩余数据.(需要用户自己完成) 将数据发送 ...
- 【bzoj3526】[Poi2014]Card 线段树区间合并
题目描述 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i].现在,有m个熊孩子来破坏你的卡片了!第i个熊孩子会交换c[i]和d[i]两个位置上的卡片. ...
- 【Luogu】P3709大爷的字符串题(莫队算法)
题目链接 语文题啊…… 看题解发现是让求区间中最多的数的个数,于是果断理解了一会题解……莫队套上完事. sum[i]表示i这个数出现的次数,cnt[i]表示出现i次的数有几个,然后乱搞搞……就好了 # ...
- HDU-1853 Cyclic Tour
最小权值环覆盖问题:用几个环把所有点覆盖,求所选取的边最小的权值之和. 拆点思想+求最小转求最大+KM算法 #include <cstdlib> #include <cstdio&g ...
- BZOJ1297 [SCOI2009]迷路 【矩阵优化dp】
题目 windy在有向图中迷路了. 该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. 现在给出该有向图,你能告诉windy总共有多少种不同的路径吗? 注意: ...
- Eclipse项目类型转换
例如,将一个普通java项目改为动态Web项目: 在eclipse的项目上点右键,刷新项目. 在项目上点右键,进入属性(properties) 在左侧列表项目中点击选择“Project Facets” ...
- Golang指针
学过C语言的老司机都知道,指针就是一个变量,用于存储另一个变量的内存地址. 那么什么是变量呢?在现代计算机体系结构中所有的需要执行的信息代码都需要存储在内存中,为了管理存储在内存的数据,内存是划分为不 ...