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 相关文章推荐
jquery常用特效方法使用示例
Apr 25 Javascript
js 实现的可折叠留言板(附源码下载)
Jul 01 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
JS与jQ读取xml文件的方法
Dec 08 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
May 27 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
package.json配置文件构成详解
Aug 27 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
微信小程序保持session会话的方法
Mar 20 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php基础知识:控制结构
2006/12/13 PHP
PHP URL路由类实例
2013/11/12 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
js 提交和设置表单的值
2008/12/19 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python 从list中随机取值的方法
2020/11/16 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
物流专业大学生求职信范文
2013/10/28 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
Python中time标准库的使用教程
2022/04/13 Python