KnocKout 绑定数据

Controller 里面的方法:

 1 public ActionResult Index()
 2         {
 3
 4             return View();
 5         }
 6         [HttpPost]
 7         public JsonResult Reader()
 8         {
 9             var list = from a in db.employee
10                 select new
11                 {
12                     Id=a.e_id,
13                     No=a.e_no,
14                     Name=a.e_name,
15                     Dname=a.department.d_name,
16                     Desc=a.e_desc,
17                     Question=a.e_question,
18                     Anawser=a.e_answer,
19                     Qx=a.e_qx,
20                     Up=a.e_up
21
22                 };
23             return Json(list, JsonRequestBehavior.AllowGet);
24         }
25
26         //删除
27         [HttpPost]
28         public JsonResult Del(int id)
29         {
30             var emp= db.employee.ToList().Find(a => a.e_id == id);
31             db.employee.Remove(emp);
32             db.SaveChanges();
33             return Json(new {type = "success"});
34         } 

html页面:

  1 @using Knockout.Models
  2 @{
  3     Layout = null;
  4 }
  5
  6 <!DOCTYPE html>
  7
  8 <html>
  9 <head>
 10     <meta name="viewport" content="width=device-width" />
 11     <script src="~/Scripts/jquery-1.8.2.min.js"></script>
 12     <script src="~/Scripts/knockout-2.2.0.debug.js"></script>
 13     <title>Index</title>
 14     <script type="text/javascript">
 15         var data;
 16         $(function() {
 17             $.ajax({
 18                 url: "/Kn/Reader",
 19                 type: "post",
 20                 async: false,
 21                 success: function (msg) {
 22                     $.each(msg, function(x, y) {
 23                         if (y.Qx == 3) {
 24                             y.Qx = "最高权限";
 25                         }else if (y.Qx == 1) {
 26                             y.Qx = "一般权限";
 27                         } else {
 28                             y.Qx = "没有权限";
 29                         }
 30                         if (y.Up == 1) {
 31                             y.Up = "已修改";
 32                         } else {
 33                             y.Up = "未修改";
 34                         }
 35                     });
 36                     data = msg;
 37                 }
 38             });
 39         });
 40
 41
 42         function ViewModel() {
 43             var self = this;
 44             self.employees = ko.observableArray(data);
 45             //删除
 46             self.remove= function(emp) {
 47                 $.ajax({
 48                     url: "/Kn/Del/" + emp.Id,
 49                     type: "post",
 50                     dataType: "json",
 51                     success:function(json) {
 52                         self.employees.remove(emp);
 53                     }
 54                 });
 55             }
 56             //编辑
 57             self.edit = function (emp) {
 58                 window.location.href = ‘/Kn/edit/‘ + emp.Id;
 59             };
 60         }
 61
 62
 63
 64
 65         $(function () {
 66
 67             var vm = new ViewModel();
 68             ko.applyBindings(vm);
 69             $("a:contains(‘删除‘)").click(function() {
 70                 if (confirm("是否确定要删除?")) {
 71                     return true;
 72                 } else {
 73                     return false;
 74                 }
 75             });
 76         });
 77
 78     </script>
 79 </head>
 80 <body>
 81     <table width="760px" border="1px" cellpadding="0" cellspacing="0">
 82         <tr>
 83             <th>编号</th>
 84             <th>姓名</th>
 85             <th>部门名称</th>
 86             <th>职称</th>
 87             <th>问题</th>
 88             <th>答案</th>
 89             <th>权限</th>
 90             <th>是否修改过密码</th>
 91             <th>操作</th>
 92         </tr>
 93         <tbody data-bind="foreach: employees">
 94             <tr>
 95                 <td data-bind="text:No"></td>
 96                 <td data-bind="text:Name"></td>
 97                 <td data-bind="text:Dname"></td>
 98                 <td data-bind="text:Desc"></td>
 99                 <td data-bind="text:Question"></td>
100                 <td data-bind="text:Anawser"></td>
101                 <td data-bind="text:Qx"></td>
102                 <td data-bind="text:Up"></td>
103                 <td><a href="javascript:" data-bind="click:$root.remove">删除</a>
104                     <a href="javascript:" data-bind="click:$root.edit">修改</a>
105                 </td>
106             </tr>
107         </tbody>
108     </table>
109 </body>
110 </html>
时间: 2024-10-28 14:56:16

KnocKout 绑定数据的相关文章

Knockout基本绑定数据

官方地址:www.knockoutjs.com //使用require.js加载 requirejs(['knockout', 'knockout.mapping.js'], function (ko, komap) { //这个是自己封装的从服务器获取数据的方法 var _model = GetModelFromServer(); //一个插件,将model转为可以双向绑定数据 _viewListModel = komap.fromJS(data); //开始绑定,第一个参数:modelVie

Knockout.js 数据验证之插件版和无插件版

本文我们将介绍使用 Knockout.js 实现一些基本的数据验证.就如我们在标题里提到的,我们会使用两种方法来创建数据验证方法. 使用自定义方法,不需要任何插件 最简单的方法是使用已有的插件 如果你刚刚接触 Knockout.js,强烈建议你阅读我之前的 文章,那篇文章中我分享了一些关于 Knockout.js 的基本知识.本文我们使用 Visual Studio 进行开发,希望你能喜欢.现在开始. 源码下载 Knockout.js Validations 第 1 段(可获 1.23 积分)

knockoutjs中使用mapping插件绑定数据列表

使用KO绑定数据列表示例: 1.先申请V,T,T2三个辅助方法,方便调试.声明viewModel和加载数据时的映射条件mapping 2.先使用ko.mapping.fromJS()将原来的JS对象转成 ko 中的 viewModel ,并使用ko.applyBindings() 激活Knockout 3.下面这几行代码是写在ajax success回调函数内的. 即:使用result.Data来更新viewModel,在这里实际上就是更新的users数组,更新过程中按mapping中的规则为数

GridView等表格模板列绑定数据的方法

//绑定GridView每一行中的CheckBoxList protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { CheckBoxList cbl = (CheckBoxList)e.Row.FindControl("ckbCheckBox"); if (cbl != null) {

关于angularJS绑定数据时自动转义html标签

折磨了两天,最后发现答案竟如此简单,不过辛苦还是值得的,毕竟为了弄明白这一点又学习了更多代码. angularJS在进行数据绑定时默认是会以文本的形式输出,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止了html标签中的注入攻击,但有些时候还是需要的,特别是从数据库读取带格式的文本时,无法正常的显示在页面中. 而要对html进行转义,则要在数据绑定的html标签中使用ng-bind-html属性,该属性依赖与$sanitize,也就是需要引入angular-saniti

【 D3.js 入门系列 — 2 】 绑定数据和选择元素

1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定到一起. D3 中是通过 data() 和 datum() 函数来绑定数据的,最常用的是 data(). 现有如下 HTML 代码: <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3

关于JQuery中$.data绑定数据原理或逻辑

问题: JQuery中,对于.data([key],[value])函数,当使用其进行数据绑定时,假设要绑定的数据是“引用数据类型”,也就是对象:那么.data函数绑定的是该对象的副本还是该对象的一个引用?下面通过以下小例子来测试下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Test<

asp.net中Repeater中用ul li绑定数据

<ul class="tit1"> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <li> <p class="tit1-p-1"> <img style="border: 0px;" src="/image/biaozhi.jpg" /> &

【 D3.js 选择集与数据详解 — 3 】 绑定数据的顺序

data() 函数有两个参数,第一个是被绑定数据,第二个参数用于指定绑定的顺序.在数据需要更新的时候常常会用到. 默认的情况下,data()函数是按照索引号依次绑定数组各项的.第0个元素绑定数组的第0项,第1个元素绑定数组的第1项,依此类推.也可以不按照此顺序进行绑定,这就要用到data()的第二个参数.这个参数是一个函数,称为键函数(key function). 要注意,只有在选择集原来已经绑定有数据的情况下,才能使用键函数指定绑定的顺序.请看以下代码: <body> <!-- 三个空