mvc模式下,easyui的datagrid的数据,传到后台接受的处理方法,
<script type="text/javascript" language="javascript"> function saveDeviceIp() { //获取表单的所有数据 var rowsData = $('#maclist').datagrid('getRows'); //处理掉表单中不要的字段 var jsond = []; var loc; $.each(rowsData, function (i) { loc= { "demo": rowsData[i].demo, "macAddress": rowsData[i].macAddress, "ipAddress": rowsData[i].ipAddress, "ipMode":rowsData[i].ipMode, "switcher":rowsData[i].switcher, "port":rowsData[i].port, "vlanid":rowsData[i].vlanid, "distime":rowsData[i].distime, "vailtime":rowsData[i].vailtime }; jsond.push(loc); }); jsond = JSON.stringify(jsond); //转换成json数据 $.ajax({ url:'/AjaxDeviceInfo/saveDeviceIp.cspx', type:'post', data:{ipinfo:jsond}, dataType:'json', sunccess:function(data){ alert(data); } }) } </script> //后台处理 //使用JavaScriptSerializer类来处理传递来的json数据。将其字符串型的json序列化成数组 [Action] public object saveDeviceIp(string ipinfo) { JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); List<DeviceIpInfo> questionList = new List<DeviceIpInfo>(); string josnArray = System.Web.HttpContext.Current.Request.Params["ipinfo"]; questionList = (List<DeviceIpInfo>)jsonSerializer.Deserialize(josnArray, typeof(List<DeviceIpInfo>)); return null; }
文章借鉴了http://blog.csdn.net/metal1/article/details/17401019
在使用JQuery EsayUI中有时会需要将DataGrid(数据表格)的数据保存到数据库中。下面我们来看看这是怎么做到的。
既然要保存数据,首先得获取数据,毕竟DataGrid没有Form有submit那样的函数可以直接提交给服务器。
首先,我们先在浏览器上得到数据,DataGrid有两种方法可供选择:
getData none 返回加载完毕后的数据。
getRows none 返回当前页的所有行。
通过getRows获得的数据就是DataGrid中所有行的数据
而通过getData方法得到的数据不但包括所有行数据,还包括total属性。
值得注意的是这两种方法得到的数据都是object型的。
var rowsData = $('#tbQuestion').datagrid('getRows');
这里我们采用一种构造json数据的方法来处理得到的object数据。
var json =JSON.stringify(rowsData);
有时候我们只需要其中的某几列数据而非全部数据。这时候就需要使用遍历了
//构造json数据传送到服务器
var jsond = [];
var loc;
$.each(rowsData, function (i) {
loc= {
"demo": rowsData[i].demo,
"macAddress": rowsData[i].macAddress,
"ipAddress": rowsData[i].ipAddress,
"ipMode":rowsData[i].ipMode,
"switcher":rowsData[i].switcher,
"port":rowsData[i].port,
"vlanid":rowsData[i].vlanid,
"distime":rowsData[i].distime,
"vailtime":rowsData[i].vailtime
};
jsond.push(loc);
});
jsond = JSON.stringify(jsond); //转换成json数据
经过这种方法处理后的数据是标准的json数据,属于字符串类型,可以直接通过post或者get传递给服务器。
$.ajax({
url:'/AjaxDeviceInfo/saveDeviceIp.cspx',
type:'post',
data:{ipinfo:jsond},
dataType:'json',
sunccess:function(data){
alert(data);
}
})
后台:
string josnArray = System.Web.HttpContext.Current.Request.Params["ipinfo"];
在服务器端,这里使用JavaScriptSerializer类来处理传递来的json数据。将其字符串型的json序列化成数组。当然,这里还需要有个容器,用来装入得到的数组。
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
List<DeviceIpInfo> questionList = new List<DeviceIpInfo>();
string josnArray = System.Web.HttpContext.Current.Request.Params["ipinfo"];
questionList = (List<DeviceIpInfo>)jsonSerializer.Deserialize(josnArray, typeof(List<DeviceIpInfo>));

浙公网安备 33010602011771号