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 相关文章推荐
JS 统计时间
Mar 09 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
Apr 09 Javascript
javascript避免数字计算精度误差的方法详解
Mar 05 Javascript
jQuery实现的placeholder效果完整实例
Aug 02 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
谈谈JavaScript中的几种借用方法
Aug 09 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
微信小程序switch组件使用详解
Jan 31 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 Javascript
如何通过vscode运行调试javascript代码
Jul 24 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
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
详细分析Python collections工具库
2020/07/16 Python
利用python进行文件操作
2020/12/04 Python
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
护理专科毕业生自荐书范文
2014/02/19 职场文书
担保书怎么写
2014/04/01 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript