Vue.js+Layer表格数据绑定与实现更新的实例


Posted in Javascript onMarch 07, 2018

一:先使用Vue.js绑定好数据与更新事件

使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接取出需要更新的数据

<div id="content">
  <table class="mytable">
    <tr class="header">
      <td>选择</td>
      <td>用户名</td>
      <td>学号</td>
      <td>班级</td>
      <td>操作</td>
    </tr>
    <tr v-for="item in mydata">
      <td><input type="checkbox" :value="item.Id" /></td>
      <td>{{item.UserName}}</td>
      <td>{{item.Number}}</td>
      <td>{{item.Class}}</td>
      <td>
        <a href="#" rel="external nofollow" rel="external nofollow" v-on:click="udelete(item.Id)">删除</a>
        <a href="#" rel="external nofollow" rel="external nofollow" v-on:click="updateu(item)">更新</a>
      </td>
    </tr>
  </table>
</div>
//实例化vue.js(用来给表格提供数据的)
        var vm = new Vue({
          el: '#content',
          data: {
            mydata: data
          },
          methods: {
            udelete: function (_id) //删除
            {
            },
            updateu: function (item) //更新
            {
            }
          }
        });

效果如下:

Vue.js+Layer表格数据绑定与实现更新的实例

二:点击更新事件弹出layer更新框

先写好html

@* 给layer弹出层提供数据 *@
<div id="updatecontent" style="display:none">
  <table style="margin-top:20px;margin-left:23px;">
    <tr>
      <td>
        用户名:
      </td>
      <td>
        <input type="text" v-model="userinfo.UserName" />
      </td>
    </tr>
      <tr>
      <td>
        学号:
      </td>
      <td>
        <input type="text" v-model="userinfo.Number" />
      </td>
    </tr>
      <tr>
      <td>
        班级:
      </td>
      <td>
        <input type="text" v-model="userinfo.Class" />
      </td>
    </tr>
  </table>
</div>

弹出layer

updateu: function (item) //更新
            {          
              layer.open({
                type: 1,
                title: "更新",
                area: ["300px", "230px"],
                content: $("#updatecontent"),
                btn: ["保存"],
                yes: function (index) {
                  alert("点击保存");
                },
                cancel: function () { //点击关闭按钮
                }
              });
            }

效果如下:

Vue.js+Layer表格数据绑定与实现更新的实例

三:为layer弹框提供好数据

传统的做法就是把值一个一个的取出来,然后在赋值给文本框,现在可以使用vue.js一次性绑定好

实例化一个vue专门为弹框内的文本框提供数据

//给更新div添加数据 
   var update_vm = new Vue({ 
     el: "#updatecontent", 
     data: { 
       userinfo: {} 
     } 
   });

点击更新按钮的时候我们已经把该行的值通过一个对象传过来了,

直接绑定到vue.js里边

updateu: function (item) //更新 
            { 
 
              update_vm.$data.userinfo = item; 
                 
            }

这样就能在点击的时候拿到需要更新的数据了

Vue.js+Layer表格数据绑定与实现更新的实例

而且由于双向绑定,当文本框发送变化的时候,表格内容也会自动变化

Vue.js+Layer表格数据绑定与实现更新的实例

四:点击保存实现更新

传统的做法就是拿到更新后的值,也就是更具id获取文本框的值,然后组装成json对象,传入后台就可以实现更新。

使用vue.js就可以避免

自己组装对象了,因为是双向绑定,文本框的值改变model值自动改变

我们直接把Model的值传回后台实现更新就行了

layer.open({
                type: 1,
                title: "更新",
                area: ["300px", "230px"],
                content: $("#updatecontent"),
                btn: ["保存"],
                yes: function (index) {
                  //调用后台实现更新
                  $.post('/home/UpdateU', update_vm.$data.userinfo, function (result) {
                  });
                },
                cancel: function () { //点击关闭按钮
                }
              });

后台使用ef直接更新就行了

//更新 
  public JsonResult UpdateU(Users uinfo) 
  { 
    testEntities en = new testEntities(); 
 
    en.Entry<Users>(uinfo).State = System.Data.EntityState.Modified; 
 
    int count = en.SaveChanges(); 
 
    return Json(count); 
  }

以上使用vue+layer实现更新,没有任何组织数据的地方,我们子需要关注数据本身就行了

如果在改变文本框值得时候不希望表格内自动改变,可以克隆一个对象在绑定

因为这样如果用户点击了关闭,需要自己会恢复成没有更新的数据

利用jquery克隆一个对象在绑定就而已了

updateu: function (item) //更新 
{ 
  //克隆一个对象 
  var databack = $.extend({}, item); 
  update_vm.$data.userinfo = databack; 
               
}

这样的话数据库是更新了页面没有被更新,可以直接刷新网页

当然也可以使用更新Model来更新页面,直接把vue.js数据替换从而更新更新到页面

$.post('/home/UpdateU', update_vm.$data.userinfo, function (result) { 
              
  //可以把vue.js数据替换从而更新更新到页面 
  vm.$data.mydata.splice(index, index, update_vm.$data.userinfo); 
});

以上这篇Vue.js+Layer表格数据绑定与实现更新的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
BootStrap3使用错误记录及解决办法
Dec 22 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
基于js中style.width与offsetWidth的区别(详解)
Nov 12 Javascript
在vue中,v-for的索引index在html中的使用方法
Mar 06 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
vue强制刷新组件的方法示例
Feb 28 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
Jul 16 Javascript
vue双向绑定数据限制长度的方法
Nov 04 Javascript
Openlayers学习之地图比例尺控件
Sep 28 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
Mar 07 #Javascript
vue2.0 computed 计算list循环后累加值的实例
Mar 07 #Javascript
Vue中v-for的数据分组实例
Mar 07 #Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 #Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 #Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 #Javascript
在vue项目中,使用axios跨域处理
Mar 07 #Javascript
You might like
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python中使用PIPE操作Linux管道
2015/02/04 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
python如何从键盘获取输入实例
2020/06/18 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
保险公司早会主持词
2014/03/22 职场文书
社会实践活动报告
2015/02/05 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python