SharePoint 2010 以Jquery Ajax方式更新SharePoint列表数据!
2013-10-11 15:43
555 查看
之前本人的博客介绍了《sharepoint 2010自定义访问日志列表设置移动终端否和客户端访问系统等计算列的公式》,那如何通过Jquery提交访问日志到自定义的SharePoint的访问日志列表中。本文介绍通过Jquery ajax访问SharePoint 2010的list web服务并添加列表记录,这样就无需后台代码就可以实现操作列表,IP地址的解析采用搜狐提供的以JSON格式返回的IP地址数据:http://pv.sohu.com/cityjson?ie=utf-8,具体下图:
![](http://images.cnitblog.com/blog/91125/201310/11154007-6f76f916403249f4b66aa5cdaaecfce8.jpg)
具体的js代码,如下图:
用这种方式还可以实现列表的更新、删除等操作,这样就可以通过前端JS代码实现操作后端的列表了,无需编写后台代码。
![](http://images.cnitblog.com/blog/91125/201310/11154007-6f76f916403249f4b66aa5cdaaecfce8.jpg)
具体的js代码,如下图:
<script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=utf-8" ></script> Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } function CreateNewItem(user) { var vpage = window.location.href; var cip = returnCitySN['cip']; var city= returnCitySN['cname']; var useragent = navigator.userAgent; var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var brw; (brw = ua.match(/msie ([\d.]+)/)) ? Sys.ie = brw[1] : (brw = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = brw[1] : (brw = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = brw[1] : (brw = ua.match(/opera.([\d.]+)/)) ? Sys.opera = brw[1] : (brw = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = brw[1] : 0; var time2 = new Date().Format("yyyy-MM-dd hh:mm:ss"); var title = $(document).find("title").text(); var batch = "<Batch OnError=\"Continue\"> \ <Method ID=\"1\" Cmd=\"New\"> \ <Field Name=\"Title\">" + user + "</Field> \ <Field Name=\"UserName\">" + user + "</Field> \ <Field Name=\"VisitPage\">" + vpage + "</Field> \ <Field Name=\"VisitTime\">" + time2 + "</Field> \ <Field Name=\"VisitIPAddress\">" + cip + "</Field> \ <Field Name=\"VisitIPCity\">" + city + "</Field> \ <Field Name=\"UserAgent\">" + useragent + "</Field> \ <Field Name=\"Browser\">" + brw + "</Field> \ <Field Name=\"VisitPageName\">"+title+"</Field> \ </Method> \ </Batch>"; var soapEnv = "<?xml version=\"1.0\" encoding=\"utf-8\"?> \ <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \ xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"> \ <soap:Body> \ <UpdateListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\"> \ <listName>用户访问日志</listName> \ <updates> \ " + batch + "</updates> \ </UpdateListItems> \ </soap:Body> \ </soap:Envelope>"; $.ajax({ url: "http://sharepoint.contoso.uat/MOA/_vti_bin/lists.asmx", beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); }, type: "POST", dataType: "xml", data: soapEnv, complete: processResult, contentType: "text/xml; charset=utf-8" }); } function processResult(xData, status) { //alert(xData); }
用这种方式还可以实现列表的更新、删除等操作,这样就可以通过前端JS代码实现操作后端的列表了,无需编写后台代码。
本博客为软件人生原创,欢迎转载,转载请标明出处:/article/5155176.html 。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。 |
相关文章推荐
- 在InfoPath 2010中使用SharePoint列表数据连接
- SharePoint开发 - Excel数据导入到SharePoint自定义列表(数据视图方式)
- sharepoint 2010 列表的数据表视图无法使用 the list cannot be displayed in datasheet view 解决方法
- sharepoint 2010 获取列表文件夹所有数据方法
- sharepoint 2010 自定义列表启用版本记录控制 如何在修改数据不产生新版本
- sharepoint 2010 列表数据分页控件介绍 pagination UserControl
- 一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(2)--添加SharePoint列表数据连接
- SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表 .
- sharepoint 2010 根据指定用户UserID查询该用户列表数据
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- sharepoint 2010 复制日历列表中的 Event 数据
- 一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(2)--添加SharePoint列表数据连接
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- SharePoint 2010中几种数据访问方式的原理和优劣
- Yii:如何在CGridView列表控件使用了Ajax方式更新数据的情况下返回前一个页面
- SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表
- SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据
- SharePoint 2010 获取列表中所有数据(包括文件夹内)的方法
- sharepoint 2010 自定义列表数据的增删改查常用操作 server object model